From 4ed776368a488b242781d77753f4b11396f97ce7 Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Mon, 23 Oct 2023 01:11:50 -0700 Subject: [PATCH] When the frame counter gets to 0, reset the FPS average counter. This allows the window to be closed and reopened with clean FPS stats. (#3445) --- src/rcore.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/rcore.c b/src/rcore.c index e3cd08188..9bd47983a 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -484,9 +484,9 @@ void InitWindow(int width, int height, const char *title) } #endif + CORE.Time.frameCounter = 0; #if defined(SUPPORT_EVENTS_AUTOMATION) events = (AutomationEvent *)RL_CALLOC(MAX_CODE_AUTOMATION_EVENTS, sizeof(AutomationEvent)); - CORE.Time.frameCounter = 0; #endif // Initialize random seed @@ -1396,6 +1396,16 @@ int GetFPS(void) static float average = 0, last = 0; float fpsFrame = GetFrameTime(); + // if we reset the window, reset the FPS info + if (CORE.Time.frameCounter == 0) + { + average = 0; + last = 0; + index = 0; + for (int i = 0; i < FPS_CAPTURE_FRAMES_COUNT; i++) + history[i] = 0; + } + if (fpsFrame == 0) return 0; if ((GetTime() - last) > FPS_STEP)