diff libmlk-core/mlk/core/game.c @ 583:5a4e5b852f8a

core: make sure we never exceed 60FPS ticks
author David Demelier <markand@malikania.fr>
date Mon, 13 Mar 2023 13:07:48 +0100
parents c7664b679a95
children 76ce31b0151f
line wrap: on
line diff
--- a/libmlk-core/mlk/core/game.c	Mon Mar 13 13:01:21 2023 +0100
+++ b/libmlk-core/mlk/core/game.c	Mon Mar 13 13:07:48 2023 +0100
@@ -109,8 +109,8 @@
 	if (mlk_window.framerate > 0)
 		frametime = 1000 / mlk_window.framerate;
 	else
-		/* Assuming 50.0 FPS. */
-		frametime = 1000.0 / 50.0;
+		/* Assuming 60.0 FPS. */
+		frametime = 1000.0 / 60.0;
 
 	while (mlk_game.state) {
 		mlk_clock_start(&clock);
@@ -129,6 +129,13 @@
 			mlk_util_delay(frametime - elapsed);
 
 		elapsed = mlk_clock_elapsed(&clock);
+
+		/*
+		 * Cap to frametime if it's too slow because it would create
+		 * unexpected results otherwise.
+		 */
+		if (elapsed > frametime)
+			elapsed = frametime;
 	}
 }