summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/ui/x11/ui.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main/ui/x11/ui.c b/src/main/ui/x11/ui.c
index 591c90e..8e5ce45 100644
--- a/src/main/ui/x11/ui.c
+++ b/src/main/ui/x11/ui.c
@@ -99,16 +99,21 @@ ui_init()
glXMakeCurrent(display, window, gl_context);
}
+static void
+ui_on_expose(XEvent event, void (*draw_frame)())
+{
+ if (event.type != Expose) return;
+ draw_frame();
+ glXSwapBuffers(display, window);
+}
+
void
ui_loop(void (*draw_frame)())
{
XEvent event;
while (1) {
XNextEvent(display, &event);
- if (event.type == Expose) {
- draw_frame();
- glXSwapBuffers(display, window);
- }
+ ui_on_expose(event, draw_frame);
if (event.type == KeyPress) {
break;
}