video_core: Make the renderer global a unique_ptr
This commit is contained in:
parent
4bc961d5fd
commit
5e17a586da
|
@ -2,7 +2,10 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "common/emu_window.h"
|
||||
#include "common/make_unique.h"
|
||||
#include "common/logging/log.h"
|
||||
|
||||
#include "core/core.h"
|
||||
|
@ -19,7 +22,7 @@
|
|||
namespace VideoCore {
|
||||
|
||||
EmuWindow* g_emu_window = nullptr; ///< Frontend emulator window
|
||||
RendererBase* g_renderer = nullptr; ///< Renderer plugin
|
||||
std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin
|
||||
|
||||
std::atomic<bool> g_hw_renderer_enabled;
|
||||
std::atomic<bool> g_shader_jit_enabled;
|
||||
|
@ -29,7 +32,7 @@ void Init(EmuWindow* emu_window) {
|
|||
Pica::Init();
|
||||
|
||||
g_emu_window = emu_window;
|
||||
g_renderer = new RendererOpenGL();
|
||||
g_renderer = Common::make_unique<RendererOpenGL>();
|
||||
g_renderer->SetWindow(g_emu_window);
|
||||
g_renderer->Init();
|
||||
|
||||
|
@ -40,7 +43,7 @@ void Init(EmuWindow* emu_window) {
|
|||
void Shutdown() {
|
||||
Pica::Shutdown();
|
||||
|
||||
delete g_renderer;
|
||||
g_renderer.reset();
|
||||
|
||||
LOG_DEBUG(Render, "shutdown OK");
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <atomic>
|
||||
#include <memory>
|
||||
|
||||
class EmuWindow;
|
||||
class RendererBase;
|
||||
|
@ -29,7 +30,7 @@ static const int kScreenBottomHeight = 240; ///< 3DS bottom screen height
|
|||
// Video core renderer
|
||||
// ---------------------
|
||||
|
||||
extern RendererBase* g_renderer; ///< Renderer plugin
|
||||
extern std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin
|
||||
extern EmuWindow* g_emu_window; ///< Emu window
|
||||
|
||||
// TODO: Wrap these in a user settings struct along with any other graphics settings (often set from qt ui)
|
||||
|
|
Reference in New Issue