diff options
Diffstat (limited to 'src/citra_qt/main.cpp')
| -rw-r--r-- | src/citra_qt/main.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp index 9f9ebc918..fe1dac622 100644 --- a/src/citra_qt/main.cpp +++ b/src/citra_qt/main.cpp | |||
| @@ -57,7 +57,6 @@ GMainWindow::GMainWindow() : emu_thread(nullptr) | |||
| 57 | 57 | ||
| 58 | render_window = new GRenderWindow(this, *this); | 58 | render_window = new GRenderWindow(this, *this); |
| 59 | render_window->hide(); | 59 | render_window->hide(); |
| 60 | emu_thread = new EmuThread(render_window); | ||
| 61 | 60 | ||
| 62 | profilerWidget = new ProfilerWidget(this); | 61 | profilerWidget = new ProfilerWidget(this); |
| 63 | addDockWidget(Qt::BottomDockWidgetArea, profilerWidget); | 62 | addDockWidget(Qt::BottomDockWidgetArea, profilerWidget); |
| @@ -197,9 +196,9 @@ void GMainWindow::OnDisplayTitleBars(bool show) | |||
| 197 | } | 196 | } |
| 198 | } | 197 | } |
| 199 | 198 | ||
| 200 | void GMainWindow::BootGame(std::string filename) | 199 | void GMainWindow::BootGame(std::string filename) { |
| 201 | { | ||
| 202 | LOG_INFO(Frontend, "Citra starting...\n"); | 200 | LOG_INFO(Frontend, "Citra starting...\n"); |
| 201 | |||
| 203 | System::Init(render_window); | 202 | System::Init(render_window); |
| 204 | 203 | ||
| 205 | // Load a game or die... | 204 | // Load a game or die... |
| @@ -211,6 +210,7 @@ void GMainWindow::BootGame(std::string filename) | |||
| 211 | registersWidget->OnDebugModeEntered(); | 210 | registersWidget->OnDebugModeEntered(); |
| 212 | callstackWidget->OnDebugModeEntered(); | 211 | callstackWidget->OnDebugModeEntered(); |
| 213 | 212 | ||
| 213 | emu_thread = new EmuThread(render_window); | ||
| 214 | emu_thread->start(); | 214 | emu_thread->start(); |
| 215 | 215 | ||
| 216 | render_window->show(); | 216 | render_window->show(); |
| @@ -248,14 +248,22 @@ void GMainWindow::OnPauseGame() | |||
| 248 | ui.action_Stop->setEnabled(true); | 248 | ui.action_Stop->setEnabled(true); |
| 249 | } | 249 | } |
| 250 | 250 | ||
| 251 | void GMainWindow::OnStopGame() | 251 | void GMainWindow::OnStopGame() { |
| 252 | { | ||
| 253 | emu_thread->SetCpuRunning(false); | 252 | emu_thread->SetCpuRunning(false); |
| 254 | // TODO: Shutdown core | 253 | |
| 254 | emu_thread->ShutdownCpu(); | ||
| 255 | emu_thread->WaitForCpuShutdown(); | ||
| 256 | emu_thread->Stop(); | ||
| 257 | |||
| 258 | delete emu_thread; | ||
| 259 | |||
| 260 | System::Shutdown(); | ||
| 255 | 261 | ||
| 256 | ui.action_Start->setEnabled(true); | 262 | ui.action_Start->setEnabled(true); |
| 257 | ui.action_Pause->setEnabled(false); | 263 | ui.action_Pause->setEnabled(false); |
| 258 | ui.action_Stop->setEnabled(false); | 264 | ui.action_Stop->setEnabled(false); |
| 265 | |||
| 266 | render_window->hide(); | ||
| 259 | } | 267 | } |
| 260 | 268 | ||
| 261 | void GMainWindow::OnOpenHotkeysDialog() | 269 | void GMainWindow::OnOpenHotkeysDialog() |