mirror of https://github.com/mgba-emu/mgba.git
mGUI: Fix FPS counter after closing menu
This commit is contained in:
parent
64d8dd1b69
commit
c284506c1b
1
CHANGES
1
CHANGES
|
@ -41,6 +41,7 @@ Other fixes:
|
||||||
- FFmpeg: Fix GIF recording (fixes mgba.io/i/2393)
|
- FFmpeg: Fix GIF recording (fixes mgba.io/i/2393)
|
||||||
- GB: Fix temporary saves
|
- GB: Fix temporary saves
|
||||||
- GB, GBA: Save writeback-pending masked saves on unload (fixes mgba.io/i/2396)
|
- GB, GBA: Save writeback-pending masked saves on unload (fixes mgba.io/i/2396)
|
||||||
|
- mGUI: Fix FPS counter after closing menu
|
||||||
- VFS: Failed file mapping should return NULL on POSIX
|
- VFS: Failed file mapping should return NULL on POSIX
|
||||||
Misc:
|
Misc:
|
||||||
- Core: Suspend runloop when a core crashes
|
- Core: Suspend runloop when a core crashes
|
||||||
|
|
|
@ -25,8 +25,8 @@ mLOG_DECLARE_CATEGORY(GUI_RUNNER);
|
||||||
mLOG_DEFINE_CATEGORY(GUI_RUNNER, "GUI Runner", "gui.runner");
|
mLOG_DEFINE_CATEGORY(GUI_RUNNER, "GUI Runner", "gui.runner");
|
||||||
|
|
||||||
#define AUTOSAVE_GRANULARITY 600
|
#define AUTOSAVE_GRANULARITY 600
|
||||||
#define FPS_GRANULARITY 120
|
#define FPS_GRANULARITY 30
|
||||||
#define FPS_BUFFER_SIZE 3
|
#define FPS_BUFFER_SIZE 4
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
RUNNER_CONTINUE = 1,
|
RUNNER_CONTINUE = 1,
|
||||||
|
@ -491,10 +491,10 @@ void mGUIRun(struct mGUIRunner* runner, const char* path) {
|
||||||
runner->gameLoaded(runner);
|
runner->gameLoaded(runner);
|
||||||
}
|
}
|
||||||
mLOG(GUI_RUNNER, INFO, "Game starting");
|
mLOG(GUI_RUNNER, INFO, "Game starting");
|
||||||
|
runner->fps = 0;
|
||||||
while (running) {
|
while (running) {
|
||||||
CircleBufferClear(&runner->fpsBuffer);
|
CircleBufferClear(&runner->fpsBuffer);
|
||||||
runner->totalDelta = 0;
|
runner->totalDelta = 0;
|
||||||
runner->fps = 0;
|
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
gettimeofday(&tv, 0);
|
gettimeofday(&tv, 0);
|
||||||
runner->lastFpsCheck = 1000000LL * tv.tv_sec + tv.tv_usec;
|
runner->lastFpsCheck = 1000000LL * tv.tv_sec + tv.tv_usec;
|
||||||
|
@ -593,7 +593,8 @@ void mGUIRun(struct mGUIRunner* runner, const char* path) {
|
||||||
}
|
}
|
||||||
runner->params.drawEnd();
|
runner->params.drawEnd();
|
||||||
|
|
||||||
if (runner->core->frameCounter(runner->core) % FPS_GRANULARITY == 0) {
|
++frame;
|
||||||
|
if (frame % FPS_GRANULARITY == 0) {
|
||||||
if (drawFps) {
|
if (drawFps) {
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
gettimeofday(&tv, 0);
|
gettimeofday(&tv, 0);
|
||||||
|
@ -618,7 +619,9 @@ void mGUIRun(struct mGUIRunner* runner, const char* path) {
|
||||||
frame = 0;
|
frame = 0;
|
||||||
_tryAutosave(runner);
|
_tryAutosave(runner);
|
||||||
}
|
}
|
||||||
++frame;
|
if (frame == FPS_GRANULARITY * AUTOSAVE_GRANULARITY) {
|
||||||
|
frame = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!running) {
|
if (!running) {
|
||||||
|
|
Loading…
Reference in New Issue