summaryrefslogtreecommitdiff
path: root/src/citra_qt/main.cpp
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner2015-08-17 18:25:21 -0300
committerGravatar Yuri Kunde Schlesner2015-08-24 22:16:28 -0300
commit0fcabd2b11a5b1d4d16f6f6bdf1efd54d2c45237 (patch)
treea1651d48113413e2de1e6e309362511b1ff7ffa8 /src/citra_qt/main.cpp
parentcitra-qt: Add helper function to get a monospace QFont (diff)
downloadyuzu-0fcabd2b11a5b1d4d16f6f6bdf1efd54d2c45237.tar.gz
yuzu-0fcabd2b11a5b1d4d16f6f6bdf1efd54d2c45237.tar.xz
yuzu-0fcabd2b11a5b1d4d16f6f6bdf1efd54d2c45237.zip
Integrate the MicroProfile profiling library
This brings goodies such as a configurable user interface and multi-threaded timeline view.
Diffstat (limited to 'src/citra_qt/main.cpp')
-rw-r--r--src/citra_qt/main.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
index 8bf2a3e13..7fb1b0dcb 100644
--- a/src/citra_qt/main.cpp
+++ b/src/citra_qt/main.cpp
@@ -17,6 +17,7 @@
17#include "common/logging/backend.h" 17#include "common/logging/backend.h"
18#include "common/logging/filter.h" 18#include "common/logging/filter.h"
19#include "common/make_unique.h" 19#include "common/make_unique.h"
20#include "common/microprofile.h"
20#include "common/platform.h" 21#include "common/platform.h"
21#include "common/scm_rev.h" 22#include "common/scm_rev.h"
22#include "common/scope_exit.h" 23#include "common/scope_exit.h"
@@ -64,6 +65,9 @@ GMainWindow::GMainWindow() : emu_thread(nullptr)
64 addDockWidget(Qt::BottomDockWidgetArea, profilerWidget); 65 addDockWidget(Qt::BottomDockWidgetArea, profilerWidget);
65 profilerWidget->hide(); 66 profilerWidget->hide();
66 67
68 microProfileDialog = new MicroProfileDialog(this);
69 microProfileDialog->hide();
70
67 disasmWidget = new DisassemblerWidget(this, emu_thread.get()); 71 disasmWidget = new DisassemblerWidget(this, emu_thread.get());
68 addDockWidget(Qt::BottomDockWidgetArea, disasmWidget); 72 addDockWidget(Qt::BottomDockWidgetArea, disasmWidget);
69 disasmWidget->hide(); 73 disasmWidget->hide();
@@ -102,6 +106,7 @@ GMainWindow::GMainWindow() : emu_thread(nullptr)
102 106
103 QMenu* debug_menu = ui.menu_View->addMenu(tr("Debugging")); 107 QMenu* debug_menu = ui.menu_View->addMenu(tr("Debugging"));
104 debug_menu->addAction(profilerWidget->toggleViewAction()); 108 debug_menu->addAction(profilerWidget->toggleViewAction());
109 debug_menu->addAction(microProfileDialog->toggleViewAction());
105 debug_menu->addAction(disasmWidget->toggleViewAction()); 110 debug_menu->addAction(disasmWidget->toggleViewAction());
106 debug_menu->addAction(registersWidget->toggleViewAction()); 111 debug_menu->addAction(registersWidget->toggleViewAction());
107 debug_menu->addAction(callstackWidget->toggleViewAction()); 112 debug_menu->addAction(callstackWidget->toggleViewAction());
@@ -128,6 +133,8 @@ GMainWindow::GMainWindow() : emu_thread(nullptr)
128 restoreGeometry(settings.value("geometry").toByteArray()); 133 restoreGeometry(settings.value("geometry").toByteArray());
129 restoreState(settings.value("state").toByteArray()); 134 restoreState(settings.value("state").toByteArray());
130 render_window->restoreGeometry(settings.value("geometryRenderWindow").toByteArray()); 135 render_window->restoreGeometry(settings.value("geometryRenderWindow").toByteArray());
136 microProfileDialog->restoreGeometry(settings.value("microProfileDialogGeometry").toByteArray());
137 microProfileDialog->setVisible(settings.value("microProfileDialogVisible").toBool());
131 138
132 ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer); 139 ui.action_Use_Hardware_Renderer->setChecked(Settings::values.use_hw_renderer);
133 SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked()); 140 SetHardwareRendererEnabled(ui.action_Use_Hardware_Renderer->isChecked());
@@ -434,6 +441,8 @@ void GMainWindow::closeEvent(QCloseEvent* event) {
434 settings.setValue("geometry", saveGeometry()); 441 settings.setValue("geometry", saveGeometry());
435 settings.setValue("state", saveState()); 442 settings.setValue("state", saveState());
436 settings.setValue("geometryRenderWindow", render_window->saveGeometry()); 443 settings.setValue("geometryRenderWindow", render_window->saveGeometry());
444 settings.setValue("microProfileDialogGeometry", microProfileDialog->saveGeometry());
445 settings.setValue("microProfileDialogVisible", microProfileDialog->isVisible());
437 settings.setValue("singleWindowMode", ui.action_Single_Window_Mode->isChecked()); 446 settings.setValue("singleWindowMode", ui.action_Single_Window_Mode->isChecked());
438 settings.setValue("displayTitleBars", ui.actionDisplay_widget_title_bars->isChecked()); 447 settings.setValue("displayTitleBars", ui.actionDisplay_widget_title_bars->isChecked());
439 settings.setValue("firstStart", false); 448 settings.setValue("firstStart", false);
@@ -456,6 +465,11 @@ int main(int argc, char* argv[]) {
456 Log::Filter log_filter(Log::Level::Info); 465 Log::Filter log_filter(Log::Level::Info);
457 Log::SetFilter(&log_filter); 466 Log::SetFilter(&log_filter);
458 467
468 MicroProfileOnThreadCreate("Frontend");
469 SCOPE_EXIT({
470 MicroProfileShutdown();
471 });
472
459 // Init settings params 473 // Init settings params
460 QSettings::setDefaultFormat(QSettings::IniFormat); 474 QSettings::setDefaultFormat(QSettings::IniFormat);
461 QCoreApplication::setOrganizationName("Citra team"); 475 QCoreApplication::setOrganizationName("Citra team");