process multiple queued events up to a maximum time before redrawing screen

This commit is contained in:
Josh Holtrop 2017-10-14 11:42:03 -04:00
parent 49c34907f5
commit b100262a15

View File

@ -11,6 +11,10 @@
#define INITIAL_HEIGHT 800 #define INITIAL_HEIGHT 800
#define FONT_SIZE 16 #define FONT_SIZE 16
/* Process multiple queued events for up to this long before stopping to
* redraw the screen. */
#define MAX_EVENT_PROCESS_TIME 50000
/** /**
* Initialize OpenGL. * Initialize OpenGL.
* *
@ -145,7 +149,13 @@ void Window::run_event_loop()
redraw(); redraw();
} }
Jtk_WaitEvent(&event); Jtk_WaitEvent(&event);
uint64_t event_time = Jtk_UsTime();
handle_event(event); handle_event(event);
while (Jtk_CheckEvent(&event) &&
((Jtk_UsTime() - event_time) < MAX_EVENT_PROCESS_TIME))
{
handle_event(event);
}
} }
} }