diff options
author | Nadia Holmquist Pedersen <nadia@nhp.sh> | 2024-01-26 13:06:32 +0100 |
---|---|---|
committer | Nadia Holmquist Pedersen <nadia@nhp.sh> | 2024-01-26 13:06:32 +0100 |
commit | 7dd4152d6711db76fbe2a2acffcc208a524bb25d (patch) | |
tree | 40a8e70a1dcc41f77ef2fd6f4e595fada19203a5 | |
parent | 890035c688b481d22564b79444855df9e9a5dada (diff) |
Add MaxFPS setting
-rw-r--r-- | src/frontend/qt_sdl/Config.cpp | 2 | ||||
-rw-r--r-- | src/frontend/qt_sdl/Config.h | 1 | ||||
-rw-r--r-- | src/frontend/qt_sdl/EmuThread.cpp | 2 | ||||
-rw-r--r-- | src/frontend/qt_sdl/InterfaceSettingsDialog.cpp | 2 | ||||
-rw-r--r-- | src/frontend/qt_sdl/InterfaceSettingsDialog.ui | 120 |
5 files changed, 92 insertions, 35 deletions
diff --git a/src/frontend/qt_sdl/Config.cpp b/src/frontend/qt_sdl/Config.cpp index b6fca7d..02f43de 100644 --- a/src/frontend/qt_sdl/Config.cpp +++ b/src/frontend/qt_sdl/Config.cpp @@ -61,6 +61,7 @@ int GL_ScaleFactor; bool GL_BetterPolygons; bool LimitFPS; +int MaxFPS; bool AudioSync; bool ShowOSD; @@ -251,6 +252,7 @@ ConfigEntry ConfigFile[] = {"GL_BetterPolygons", 1, &GL_BetterPolygons, false, false}, {"LimitFPS", 1, &LimitFPS, true, false}, + {"MaxFPS", 0, &MaxFPS, 1000, false}, {"AudioSync", 1, &AudioSync, false}, {"ShowOSD", 1, &ShowOSD, true, false}, diff --git a/src/frontend/qt_sdl/Config.h b/src/frontend/qt_sdl/Config.h index 5e3db82..11644dc 100644 --- a/src/frontend/qt_sdl/Config.h +++ b/src/frontend/qt_sdl/Config.h @@ -105,6 +105,7 @@ extern int GL_ScaleFactor; extern bool GL_BetterPolygons; extern bool LimitFPS; +extern int MaxFPS; extern bool AudioSync; extern bool ShowOSD; diff --git a/src/frontend/qt_sdl/EmuThread.cpp b/src/frontend/qt_sdl/EmuThread.cpp index 01431a1..0728a08 100644 --- a/src/frontend/qt_sdl/EmuThread.cpp +++ b/src/frontend/qt_sdl/EmuThread.cpp @@ -576,7 +576,7 @@ void EmuThread::run() { bool limitfps = Config::LimitFPS && !fastforward; - double practicalFramelimit = limitfps ? frametimeStep : 1.0 / 1000.0; + double practicalFramelimit = limitfps ? frametimeStep : 1.0 / Config::MaxFPS; double curtime = SDL_GetPerformanceCounter() * perfCountsSec; diff --git a/src/frontend/qt_sdl/InterfaceSettingsDialog.cpp b/src/frontend/qt_sdl/InterfaceSettingsDialog.cpp index 2f7417f..75497bc 100644 --- a/src/frontend/qt_sdl/InterfaceSettingsDialog.cpp +++ b/src/frontend/qt_sdl/InterfaceSettingsDialog.cpp @@ -34,6 +34,7 @@ InterfaceSettingsDialog::InterfaceSettingsDialog(QWidget* parent) : QDialog(pare ui->spinMouseHideSeconds->setEnabled(Config::MouseHide != 0); ui->spinMouseHideSeconds->setValue(Config::MouseHideSeconds); ui->cbPauseLostFocus->setChecked(Config::PauseLostFocus != 0); + ui->spinMaxFPS->setValue(Config::MaxFPS); } InterfaceSettingsDialog::~InterfaceSettingsDialog() @@ -60,6 +61,7 @@ void InterfaceSettingsDialog::done(int r) Config::MouseHide = ui->cbMouseHide->isChecked() ? 1:0; Config::MouseHideSeconds = ui->spinMouseHideSeconds->value(); Config::PauseLostFocus = ui->cbPauseLostFocus->isChecked() ? 1:0; + Config::MaxFPS = ui->spinMaxFPS->value(); Config::Save(); diff --git a/src/frontend/qt_sdl/InterfaceSettingsDialog.ui b/src/frontend/qt_sdl/InterfaceSettingsDialog.ui index 8ee9fed..01ba4a4 100644 --- a/src/frontend/qt_sdl/InterfaceSettingsDialog.ui +++ b/src/frontend/qt_sdl/InterfaceSettingsDialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>262</width> - <height>113</height> + <width>337</width> + <height>233</height> </rect> </property> <property name="sizePolicy"> @@ -19,32 +19,96 @@ <property name="windowTitle"> <string>Interface settings - melonDS</string> </property> - <layout class="QGridLayout" name="gridLayout"> - <item row="1" column="0" alignment="Qt::AlignLeft"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Hide after</string> + <layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,0"> + <item alignment="Qt::AlignTop"> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>Main window</string> </property> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <widget class="QCheckBox" name="cbMouseHide"> + <property name="text"> + <string>Hide mouse after inactivity</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0,1"> + <property name="leftMargin"> + <number>18</number> + </property> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>After</string> + </property> + <property name="buddy"> + <cstring>spinMouseHideSeconds</cstring> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="spinMouseHideSeconds"/> + </item> + <item> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>seconds</string> + </property> + <property name="buddy"> + <cstring>spinMouseHideSeconds</cstring> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QCheckBox" name="cbPauseLostFocus"> + <property name="text"> + <string>Pause emulation when window is not in focus</string> + </property> + </widget> + </item> + </layout> </widget> </item> - <item row="2" column="0" colspan="4"> - <widget class="QCheckBox" name="cbPauseLostFocus"> - <property name="text"> - <string>Pause emulation when window is not in focus</string> + <item> + <widget class="QGroupBox" name="groupBox_2"> + <property name="title"> + <string>Framerate </string> </property> + <layout class="QHBoxLayout" name="horizontalLayout_4" stretch="0,0"> + <item> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>Fast-forward limit</string> + </property> + <property name="buddy"> + <cstring>spinMaxFPS</cstring> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="spinMaxFPS"> + <property name="suffix"> + <string> FPS</string> + </property> + <property name="minimum"> + <number>60</number> + </property> + <property name="maximum"> + <number>1000</number> + </property> + <property name="value"> + <number>1000</number> + </property> + </widget> + </item> + </layout> </widget> </item> - <item row="0" column="0" colspan="5"> - <widget class="QCheckBox" name="cbMouseHide"> - <property name="text"> - <string>Hide mouse after inactivity</string> - </property> - </widget> - </item> - <item row="1" column="1" alignment="Qt::AlignLeft"> - <widget class="QSpinBox" name="spinMouseHideSeconds"/> - </item> - <item row="3" column="0" colspan="5"> + <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -54,20 +118,8 @@ </property> </widget> </item> - <item row="1" column="2"> - <widget class="QLabel" name="label_2"> - <property name="text"> - <string>seconds of inactivity</string> - </property> - </widget> - </item> </layout> </widget> - <tabstops> - <tabstop>cbMouseHide</tabstop> - <tabstop>spinMouseHideSeconds</tabstop> - <tabstop>cbPauseLostFocus</tabstop> - </tabstops> <resources/> <connections> <connection> |