citra-emu
/
citra-canary
Archived
1
0
Fork 0

MakeCurrent race condition fix

This commit is contained in:
tfarley 2015-05-18 21:24:43 -07:00
parent 05dc633a8c
commit 16fbba3c2a
2 changed files with 3 additions and 2 deletions

View File

@ -28,11 +28,11 @@
EmuThread::EmuThread(GRenderWindow* render_window) : EmuThread::EmuThread(GRenderWindow* render_window) :
exec_step(false), running(false), stop_run(false), render_window(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() { void EmuThread::run() {
render_window->MakeCurrent();
stop_run = false; stop_run = false;
// holds whether the cpu was running during the last iteration, // holds whether the cpu was running during the last iteration,

View File

@ -216,6 +216,7 @@ void GMainWindow::BootGame(std::string filename) {
// Create and start the emulation thread // Create and start the emulation thread
emu_thread = Common::make_unique<EmuThread>(render_window); emu_thread = Common::make_unique<EmuThread>(render_window);
emit EmulationStarting(emu_thread.get()); emit EmulationStarting(emu_thread.get());
render_window->moveContext();
emu_thread->start(); emu_thread->start();
// BlockingQueuedConnection is important here, it makes sure we've finished refreshing our views before the CPU continues // BlockingQueuedConnection is important here, it makes sure we've finished refreshing our views before the CPU continues