changeset 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 8a7648480e2d
children f2737a931658
files examples/example-map/example-map.c libmlk-core/mlk/core/game.c
diffstat 2 files changed, 11 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/examples/example-map/example-map.c	Mon Mar 13 13:01:21 2023 +0100
+++ b/examples/example-map/example-map.c	Mon Mar 13 13:07:48 2023 +0100
@@ -197,9 +197,8 @@
 
 	mlk_map_update(&map, ticks);
 
-	if (tomb.message.state && mlk_message_update(&tomb.message, ticks)) {
-
-	}
+	if (tomb.message.state)
+		mlk_message_update(&tomb.message, ticks);
 }
 
 static void
--- 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;
 	}
 }