summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2015-12-30 08:52:01 -0500
committerGravatar Lioncash2015-12-30 08:52:01 -0500
commit5e17a586da5e01ac037203b45a19dc0da839e868 (patch)
treedf3d942ea9730a53d2597cad0b8c86cd31321d6b /src
parentMerge pull request #1306 from Subv/sync (diff)
downloadyuzu-5e17a586da5e01ac037203b45a19dc0da839e868.tar.gz
yuzu-5e17a586da5e01ac037203b45a19dc0da839e868.tar.xz
yuzu-5e17a586da5e01ac037203b45a19dc0da839e868.zip
video_core: Make the renderer global a unique_ptr
Diffstat (limited to '')
-rw-r--r--src/video_core/video_core.cpp11
-rw-r--r--src/video_core/video_core.h5
2 files changed, 10 insertions, 6 deletions
diff --git a/src/video_core/video_core.cpp b/src/video_core/video_core.cpp
index eaddda668..912db91a4 100644
--- a/src/video_core/video_core.cpp
+++ b/src/video_core/video_core.cpp
@@ -2,7 +2,10 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <memory>
6
5#include "common/emu_window.h" 7#include "common/emu_window.h"
8#include "common/make_unique.h"
6#include "common/logging/log.h" 9#include "common/logging/log.h"
7 10
8#include "core/core.h" 11#include "core/core.h"
@@ -18,8 +21,8 @@
18 21
19namespace VideoCore { 22namespace VideoCore {
20 23
21EmuWindow* g_emu_window = nullptr; ///< Frontend emulator window 24EmuWindow* g_emu_window = nullptr; ///< Frontend emulator window
22RendererBase* g_renderer = nullptr; ///< Renderer plugin 25std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin
23 26
24std::atomic<bool> g_hw_renderer_enabled; 27std::atomic<bool> g_hw_renderer_enabled;
25std::atomic<bool> g_shader_jit_enabled; 28std::atomic<bool> g_shader_jit_enabled;
@@ -29,7 +32,7 @@ void Init(EmuWindow* emu_window) {
29 Pica::Init(); 32 Pica::Init();
30 33
31 g_emu_window = emu_window; 34 g_emu_window = emu_window;
32 g_renderer = new RendererOpenGL(); 35 g_renderer = Common::make_unique<RendererOpenGL>();
33 g_renderer->SetWindow(g_emu_window); 36 g_renderer->SetWindow(g_emu_window);
34 g_renderer->Init(); 37 g_renderer->Init();
35 38
@@ -40,7 +43,7 @@ void Init(EmuWindow* emu_window) {
40void Shutdown() { 43void Shutdown() {
41 Pica::Shutdown(); 44 Pica::Shutdown();
42 45
43 delete g_renderer; 46 g_renderer.reset();
44 47
45 LOG_DEBUG(Render, "shutdown OK"); 48 LOG_DEBUG(Render, "shutdown OK");
46} 49}
diff --git a/src/video_core/video_core.h b/src/video_core/video_core.h
index 2867bf03e..accb0a4eb 100644
--- a/src/video_core/video_core.h
+++ b/src/video_core/video_core.h
@@ -5,6 +5,7 @@
5#pragma once 5#pragma once
6 6
7#include <atomic> 7#include <atomic>
8#include <memory>
8 9
9class EmuWindow; 10class EmuWindow;
10class RendererBase; 11class RendererBase;
@@ -29,8 +30,8 @@ static const int kScreenBottomHeight = 240; ///< 3DS bottom screen height
29// Video core renderer 30// Video core renderer
30// --------------------- 31// ---------------------
31 32
32extern RendererBase* g_renderer; ///< Renderer plugin 33extern std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin
33extern EmuWindow* g_emu_window; ///< Emu window 34extern EmuWindow* g_emu_window; ///< Emu window
34 35
35// TODO: Wrap these in a user settings struct along with any other graphics settings (often set from qt ui) 36// TODO: Wrap these in a user settings struct along with any other graphics settings (often set from qt ui)
36extern std::atomic<bool> g_hw_renderer_enabled; 37extern std::atomic<bool> g_hw_renderer_enabled;