aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCourtney Goeltzenleuchter <courtney@LunarG.com>2014-11-18 11:28:09 -0700
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2014-11-26 10:03:11 -0700
commitc465d6c02e4e8209a8569cac8991ddef060e0e26 (patch)
tree606a12c0cfa3fdfc823b700ed44970b648bb55e7
parentc988d5f5f8bdac78ca9608e0a5b6de6286d05e03 (diff)
downloadusermoji-c465d6c02e4e8209a8569cac8991ddef060e0e26.tar.xz
demo cube: Clean up event processing
Will now really wait for an event when paused. Always update and render after checking for events
-rw-r--r--demos/cube.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/demos/cube.c b/demos/cube.c
index 923b8a8d..cd1ccaa7 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -1140,7 +1140,7 @@ static void demo_handle_event(struct demo *demo,
u_int8_t event_code = event->response_type & 0x7f;
switch (event_code) {
case XCB_EXPOSE:
- demo_draw(demo);
+ // TODO: Resize window
break;
case XCB_CLIENT_MESSAGE:
if((*(xcb_client_message_event_t*)event).data.data32[0] ==
@@ -1181,20 +1181,21 @@ static void demo_run(struct demo *demo)
while (!demo->quit) {
xcb_generic_event_t *event;
- event = xcb_poll_for_event(demo->connection);
+ if (demo->pause) {
+ event = xcb_wait_for_event(demo->connection);
+ } else {
+ event = xcb_poll_for_event(demo->connection);
+ }
if (event) {
demo_handle_event(demo, event);
free(event);
- } else if (!demo->pause){
- // Wait for work to finish before updating MVP.
- xglDeviceWaitIdle(demo->device);
-
- demo_update_data_buffer(demo);
+ }
- demo_update_data_buffer(demo);
+ // Wait for work to finish before updating MVP.
+ xglDeviceWaitIdle(demo->device);
+ demo_update_data_buffer(demo);
- demo_draw(demo);
- }
+ demo_draw(demo);
}
}