diff nuklear_ui/blastem_nuklear.c @ 1482:2d203bf73dbd nuklear_ui

Avoid burning a huge amount of CPU in the menu when emulation is not running and vsync is disabled
author Michael Pavone <pavone@retrodev.com>
date Sat, 25 Nov 2017 14:42:38 -0800
parents 77a401044935
children 001120e91fed
line wrap: on
line diff
--- a/nuklear_ui/blastem_nuklear.c	Sat Nov 25 13:57:38 2017 -0800
+++ b/nuklear_ui/blastem_nuklear.c	Sat Nov 25 14:42:38 2017 -0800
@@ -206,8 +206,15 @@
 
 void idle_loop(void)
 {
+	const uint32_t MIN_UI_DELAY = 15;
+	static uint32_t last;
 	while (current_view != view_play)
 	{
+		uint32_t current = render_elapsed_ms();
+		if ((current - last) < MIN_UI_DELAY) {
+			render_sleep_ms(MIN_UI_DELAY - (current - last) - 1);
+		}
+		last = current;
 		render_update_display();
 	}
 }