aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/citra_qt
diff options
context:
space:
mode:
authorGravatar tfarley <tfarleygithub@gmail.com>2015-05-18 21:24:43 -0700
committerGravatar tfarley <tfarleygithub@gmail.com>2015-05-22 15:51:33 -0700
commit16fbba3c2a21bf92e9dd6d17c89da9bccf339691 (patch)
tree3950e0267cc2cb1f624d0db3647cffacf4692307 /src/citra_qt
parent05dc633a8c35221ce8d6abe6ddf027f8b0bab6c2 (diff)
MakeCurrent race condition fix
Diffstat (limited to 'src/citra_qt')
-rw-r--r--src/citra_qt/bootmanager.cpp4
-rw-r--r--src/citra_qt/main.cpp1
2 files changed, 3 insertions, 2 deletions
diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp
index ab940300..ea46bb1d 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 2ea33ebc..f6010459 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<EmuThread>(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