MakeCurrent race condition fix
This commit is contained in:
		| @@ -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, | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user