Merge pull request #285 from abcdjdj/limit_fps

Add option to limit framerate from UI
This commit is contained in:
StapleButter 2018-12-15 00:38:35 +01:00 committed by GitHub
commit 7fb1c0518c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 2 deletions

View File

@ -46,6 +46,8 @@ int ScreenLayout;
int ScreenSizing;
int ScreenFilter;
int LimitFPS;
int DirectBoot;
int Threaded3D;
@ -114,6 +116,8 @@ ConfigEntry ConfigFile[] =
{"ScreenSizing", 0, &ScreenSizing, 0, NULL, 0},
{"ScreenFilter", 0, &ScreenFilter, 1, NULL, 0},
{"LimitFPS", 0, &LimitFPS, 1, NULL, 0},
{"DirectBoot", 0, &DirectBoot, 1, NULL, 0},
{"Threaded3D", 0, &Threaded3D, 1, NULL, 0},

View File

@ -51,6 +51,8 @@ extern int ScreenLayout;
extern int ScreenSizing;
extern int ScreenFilter;
extern int LimitFPS;
extern int DirectBoot;
extern int Threaded3D;

View File

@ -404,7 +404,6 @@ int EmuThreadFunc(void* burp)
u32 lasttick = starttick;
u32 lastmeasuretick = lasttick;
u32 fpslimitcount = 0;
bool limitfps = true;
char melontitle[100];
while (EmuRunning != 0)
@ -516,7 +515,7 @@ int EmuThreadFunc(void* burp)
lasttick = curtick;
u32 wantedtick = starttick + (u32)((float)fpslimitcount * framerate);
if (curtick < wantedtick && limitfps)
if (curtick < wantedtick && Config::LimitFPS)
{
SDL_Delay(wantedtick - curtick);
}
@ -1533,6 +1532,12 @@ void OnSetScreenFiltering(uiMenuItem* item, uiWindow* window, void* blarg)
else Config::ScreenFilter = 0;
}
void OnSetLimitFPS(uiMenuItem* item, uiWindow* window, void* blarg)
{
int chk = uiMenuItemChecked(item);
if (chk != 0) Config::LimitFPS = true;
else Config::LimitFPS = false;
}
void ApplyNewSettings()
{
@ -1765,6 +1770,10 @@ int main(int argc, char** argv)
uiMenuItemOnClicked(menuitem, OnSetScreenFiltering, NULL);
uiMenuItemSetChecked(menuitem, Config::ScreenFilter==1);
menuitem = uiMenuAppendCheckItem(menu, "Limit framerate");
uiMenuItemOnClicked(menuitem, OnSetLimitFPS, NULL);
uiMenuItemSetChecked(menuitem, Config::LimitFPS==1);
int w = Config::WindowWidth;
int h = Config::WindowHeight;