Add MaxFPS setting

This commit is contained in:
Nadia Holmquist Pedersen 2024-01-26 13:06:32 +01:00
parent 890035c688
commit 7dd4152d67
5 changed files with 92 additions and 35 deletions

View File

@ -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},

View File

@ -105,6 +105,7 @@ extern int GL_ScaleFactor;
extern bool GL_BetterPolygons;
extern bool LimitFPS;
extern int MaxFPS;
extern bool AudioSync;
extern bool ShowOSD;

View File

@ -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;

View File

@ -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();

View File

@ -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>