summaryrefslogtreecommitdiff
path: root/src/citra_qt/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/citra_qt/main.cpp')
-rw-r--r--src/citra_qt/main.cpp20
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
200void GMainWindow::BootGame(std::string filename) 199void 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
251void GMainWindow::OnStopGame() 251void 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
261void GMainWindow::OnOpenHotkeysDialog() 269void GMainWindow::OnOpenHotkeysDialog()