diff options
| author | Karl Schultz <karl@lunarg.com> | 2017-01-04 10:31:20 -0700 |
|---|---|---|
| committer | Karl Schultz <karl@lunarg.com> | 2017-01-05 07:46:26 -0700 |
| commit | 6ddf1e08aa79bf3022181bee2079436304ee8916 (patch) | |
| tree | fcca35a6e9df1004ed5ef4cf369f996456351e5e /demos/cube.cpp | |
| parent | f4ef7c26b9aa00159b230a2511d4ce018a4488fd (diff) | |
| download | usermoji-6ddf1e08aa79bf3022181bee2079436304ee8916.tar.xz | |
demos: Make spacebar pause work in cube demo (Linux).
Fixes #1316.
Rework XCB event processing code to handle events
properly and avoid hangs when pausing.
Fix polarity of decrease/increase spin rate keys. I
suspect that this was an artifact from fixes made
to the transforms a while back.
Change-Id: I74adf7309227fafd175d8972ca930a304c58a1dd
Diffstat (limited to 'demos/cube.cpp')
| -rw-r--r-- | demos/cube.cpp | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/demos/cube.cpp b/demos/cube.cpp index ffbb30c9..7f3155f2 100644 --- a/demos/cube.cpp +++ b/demos/cube.cpp @@ -2178,7 +2178,7 @@ struct Demo { mat4x4 VP; mat4x4_mul(VP, projection_matrix, view_matrix); - // Rotate 22.5 degrees around the Y axis + // Rotate around the Y axis mat4x4 Model; mat4x4_dup(Model, model_matrix); mat4x4_rotate(model_matrix, Model, 0.0f, 1.0f, 0.0f, @@ -2385,12 +2385,12 @@ struct Demo { quit = true; break; case 0x71: // left arrow key - spin_angle += spin_increment; + spin_angle -= spin_increment; break; case 0x72: // right arrow key - spin_angle -= spin_increment; + spin_angle += spin_increment; break; - case 0x41: + case 0x41: // space bar pause = !pause; break; } @@ -2415,11 +2415,10 @@ struct Demo { if (pause) { XNextEvent(display, &event); handle_xlib_event(&event); - } else { - while (XPending(display) > 0) { - XNextEvent(display, &event); - handle_xlib_event(&event); - } + } + while (XPending(display) > 0) { + XNextEvent(display, &event); + handle_xlib_event(&event); } update_data_buffer(); @@ -2454,12 +2453,12 @@ struct Demo { quit = true; break; case 0x71: // left arrow key - spin_angle += spin_increment; + spin_angle -= spin_increment; break; case 0x72: // right arrow key - spin_angle -= spin_increment; + spin_angle += spin_increment; break; - case 0x41: + case 0x41: // space bar pause = !pause; break; } @@ -2488,11 +2487,11 @@ struct Demo { event = xcb_wait_for_event(connection); } else { event = xcb_poll_for_event(connection); - while (event) { - handle_xcb_event(event); - free(event); - event = xcb_poll_for_event(connection); - } + } + while (event) { + handle_xcb_event(event); + free(event); + event = xcb_poll_for_event(connection); } update_data_buffer(); |
