diff options
| author | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2014-11-18 11:28:09 -0700 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2014-11-26 10:03:11 -0700 |
| commit | c465d6c02e4e8209a8569cac8991ddef060e0e26 (patch) | |
| tree | 606a12c0cfa3fdfc823b700ed44970b648bb55e7 | |
| parent | c988d5f5f8bdac78ca9608e0a5b6de6286d05e03 (diff) | |
| download | usermoji-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.c | 21 |
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); } } |
