From 05dc633a8c35221ce8d6abe6ddf027f8b0bab6c2 Mon Sep 17 00:00:00 2001 From: tfarley Date: Mon, 18 May 2015 21:21:33 -0700 Subject: OpenGL renderer --- src/citra_qt/main.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/citra_qt/main.cpp') diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index 24506deab..2ea33ebc5 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp @@ -44,6 +44,8 @@ #include "core/arm/disassembler/load_symbol_map.h" #include "citra_qt/config.h" +#include "video_core/video_core.h" + #include "version.h" GMainWindow::GMainWindow() : emu_thread(nullptr) @@ -123,6 +125,9 @@ GMainWindow::GMainWindow() : emu_thread(nullptr) restoreState(settings.value("state").toByteArray()); render_window->restoreGeometry(settings.value("geometryRenderWindow").toByteArray()); + ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer); + SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked()); + ui.action_Single_Window_Mode->setChecked(settings.value("singleWindowMode", true).toBool()); ToggleWindowMode(); @@ -135,6 +140,7 @@ GMainWindow::GMainWindow() : emu_thread(nullptr) connect(ui.action_Start, SIGNAL(triggered()), this, SLOT(OnStartGame())); connect(ui.action_Pause, SIGNAL(triggered()), this, SLOT(OnPauseGame())); connect(ui.action_Stop, SIGNAL(triggered()), this, SLOT(OnStopGame())); + connect(ui.action_Use_Hardware_Renderer, SIGNAL(triggered(bool)), this, SLOT(SetHardwareRendererEnabled(bool))); connect(ui.action_Single_Window_Mode, SIGNAL(triggered(bool)), this, SLOT(ToggleWindowMode())); connect(ui.action_Hotkeys, SIGNAL(triggered()), this, SLOT(OnOpenHotkeysDialog())); @@ -300,6 +306,9 @@ void GMainWindow::OnOpenHotkeysDialog() dialog.exec(); } +void GMainWindow::SetHardwareRendererEnabled(bool enabled) { + VideoCore::g_hw_renderer_enabled = enabled; +} void GMainWindow::ToggleWindowMode() { if (ui.action_Single_Window_Mode->isChecked()) { -- cgit v1.2.3 From 16fbba3c2a21bf92e9dd6d17c89da9bccf339691 Mon Sep 17 00:00:00 2001 From: tfarley Date: Mon, 18 May 2015 21:24:43 -0700 Subject: MakeCurrent race condition fix --- src/citra_qt/bootmanager.cpp | 4 ++-- src/citra_qt/main.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'src/citra_qt/main.cpp') diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp index ab9403007..ea46bb1da 100644 --- a/src/citra_qt/bootmanager.cpp +++ b/src/citra_qt/bootmanager.cpp @@ -28,11 +28,11 @@ EmuThread::EmuThread(GRenderWindow* render_window) : exec_step(false), running(false), stop_run(false), render_window(render_window) { - - connect(this, SIGNAL(started()), render_window, SLOT(moveContext())); } void EmuThread::run() { + render_window->MakeCurrent(); + stop_run = false; // holds whether the cpu was running during the last iteration, diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index 2ea33ebc5..f6010459a 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp @@ -216,6 +216,7 @@ void GMainWindow::BootGame(std::string filename) { // Create and start the emulation thread emu_thread = Common::make_unique(render_window); emit EmulationStarting(emu_thread.get()); + render_window->moveContext(); emu_thread->start(); // BlockingQueuedConnection is important here, it makes sure we've finished refreshing our views before the CPU continues -- cgit v1.2.3