login

<     >

2018-01-22 18:50:00 (UTC-02:00)

Marcel Rodrigues <marcelgmr@gmail.com>

example: fix event handling in main loop.

diff --git a/example.c b/example.c
index f323196..fcde372 100644
--- a/example.c
+++ b/example.c
@@ -25,7 +25,7 @@ main(int argc, char *argv[])
     void *addr;
     int i, j;
     Uint32 pixel;
-    int ret, paused;
+    int ret, paused, quit;
     Uint32 t0, t1;
 
     if (argc != 2) {
@@ -63,17 +63,23 @@ main(int argc, char *argv[])
         return 1;
     }
     paused = 0;
+    quit = 0;
     while (1) {
-        SDL_PollEvent(&event);
-        if (event.type == SDL_QUIT)
-            break;
-        if (event.type == SDL_KEYDOWN) {
-            if (event.key.keysym.sym == SDLK_q)
-                break;
-            else if (event.key.keysym.sym == SDLK_SPACE)
-                paused = !paused;
+        while (SDL_PollEvent(&event) && !quit) {
+            if (event.type == SDL_QUIT)
+                quit = 1;
+            if (event.type == SDL_KEYDOWN) {
+                if (event.key.keysym.sym == SDLK_q)
+                    quit = 1;
+                else if (event.key.keysym.sym == SDLK_SPACE)
+                    paused = !paused;
+            }
+        }
+        if (quit) break;
+        if (paused) {
+            SDL_Delay(10);
+            continue;
         }
-        if (paused) continue;
         t0 = SDL_GetTicks();
         ret = gd_get_frame(gif);
         if (ret == -1)