diff options
| author | bunnei <bunneidev@gmail.com> | 2018-08-05 16:37:39 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-05 16:37:39 -0400 |
| commit | 5160c0c975efd63866788033d913ba0450f20cae (patch) | |
| tree | 85469600d392a504b6de17b57b3e2f96e8cfb10b /src/core/core.cpp | |
| parent | ad4082998a04d84524405fcb05463b24e0291b17 (diff) | |
| parent | 69bbe31ca82d19e52716acb7b160a0f37b975113 (diff) | |
Merge pull request #912 from lioncash/global-var
video_core: Eliminate the g_renderer global variable
Diffstat (limited to 'src/core/core.cpp')
| -rw-r--r-- | src/core/core.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index e51e665501..e01c45cddc 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -18,6 +18,7 @@ #include "core/loader/loader.h" #include "core/settings.h" #include "file_sys/vfs_real.h" +#include "video_core/renderer_base.h" #include "video_core/video_core.h" namespace Core { @@ -178,7 +179,6 @@ System::ResultStatus System::Init(EmuWindow& emu_window) { cpu_cores[index] = std::make_shared<Cpu>(cpu_exclusive_monitor, cpu_barrier, index); } - gpu_core = std::make_unique<Tegra::GPU>(); telemetry_session = std::make_unique<Core::TelemetrySession>(); service_manager = std::make_shared<Service::SM::ServiceManager>(); @@ -186,10 +186,13 @@ System::ResultStatus System::Init(EmuWindow& emu_window) { Service::Init(service_manager); GDBStub::Init(); - if (!VideoCore::Init(emu_window)) { + renderer = VideoCore::CreateRenderer(emu_window); + if (!renderer->Init()) { return ResultStatus::ErrorVideoCore; } + gpu_core = std::make_unique<Tegra::GPU>(renderer->Rasterizer()); + // Create threads for CPU cores 1-3, and build thread_to_cpu map // CPU core 0 is run on the main thread thread_to_cpu[std::this_thread::get_id()] = cpu_cores[0]; @@ -221,7 +224,7 @@ void System::Shutdown() { perf_results.frametime * 1000.0); // Shutdown emulation session - VideoCore::Shutdown(); + renderer.reset(); GDBStub::Shutdown(); Service::Shutdown(); Kernel::Shutdown(); |
