diff options
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/video_core.cpp | 11 | ||||
| -rw-r--r-- | src/video_core/video_core.h | 5 |
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 | ||
| 19 | namespace VideoCore { | 22 | namespace VideoCore { |
| 20 | 23 | ||
| 21 | EmuWindow* g_emu_window = nullptr; ///< Frontend emulator window | 24 | EmuWindow* g_emu_window = nullptr; ///< Frontend emulator window |
| 22 | RendererBase* g_renderer = nullptr; ///< Renderer plugin | 25 | std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin |
| 23 | 26 | ||
| 24 | std::atomic<bool> g_hw_renderer_enabled; | 27 | std::atomic<bool> g_hw_renderer_enabled; |
| 25 | std::atomic<bool> g_shader_jit_enabled; | 28 | std::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) { | |||
| 40 | void Shutdown() { | 43 | void 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 | ||
| 9 | class EmuWindow; | 10 | class EmuWindow; |
| 10 | class RendererBase; | 11 | class 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 | ||
| 32 | extern RendererBase* g_renderer; ///< Renderer plugin | 33 | extern std::unique_ptr<RendererBase> g_renderer; ///< Renderer plugin |
| 33 | extern EmuWindow* g_emu_window; ///< Emu window | 34 | extern 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) |
| 36 | extern std::atomic<bool> g_hw_renderer_enabled; | 37 | extern std::atomic<bool> g_hw_renderer_enabled; |