Commit decd1b4d74c1b1610557262a1c9896a8814ffb51

Sylvain 2021-09-23T22:28:45

testdraw2: display FPS similarly to testsprit2. fix helper syntax

diff --git a/test/testdraw2.c b/test/testdraw2.c
index b5abcb7..f9dea9f 100644
--- a/test/testdraw2.c
+++ b/test/testdraw2.c
@@ -32,6 +32,8 @@ static int cycle_direction = 1;
 static int current_alpha = 255;
 static int current_color = 255;
 static SDL_BlendMode blendMode = SDL_BLENDMODE_NONE;
+static Uint32 next_fps_check, frames;
+static const Uint32 fps_check_delay = 5000;
 
 int done;
 
@@ -178,6 +180,7 @@ DrawRects(SDL_Renderer * renderer)
 void
 loop()
 {
+    Uint32 now;
     int i;
     SDL_Event event;
 
@@ -203,13 +206,23 @@ loop()
         emscripten_cancel_main_loop();
     }
 #endif
+    frames++;
+    now = SDL_GetTicks();
+    if (SDL_TICKS_PASSED(now, next_fps_check)) {
+        /* Print out some timing information */
+        const Uint32 then = next_fps_check - fps_check_delay;
+        const double fps = ((double) frames * 1000) / (now - then);
+        SDL_Log("%2.2f frames per second\n", fps);
+        next_fps_check = now + fps_check_delay;
+        frames = 0;
+    }
+
 }
 
 int
 main(int argc, char *argv[])
 {
     int i;
-    Uint32 then, now, frames;
 
     /* Enable standard application logging */
     SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
@@ -256,7 +269,12 @@ main(int argc, char *argv[])
             }
         }
         if (consumed < 0) {
-            static const char *options[] = { "[--blend none|blend|add|mod]", "[--cyclecolor]", "[--cyclealpha]", NULL };
+            static const char *options[] = { 
+                "[--blend none|blend|add|mod]", 
+                "[--cyclecolor]",
+                "[--cyclealpha]",
+                "[num_objects]",
+                NULL };
             SDLTest_CommonLogUsage(state, argv[0], options);
             return 1;
         }
@@ -278,27 +296,20 @@ main(int argc, char *argv[])
 
     /* Main render loop */
     frames = 0;
-    then = SDL_GetTicks();
+    next_fps_check = SDL_GetTicks() + fps_check_delay;
     done = 0;
 
 #ifdef __EMSCRIPTEN__
     emscripten_set_main_loop(loop, 0, 1);
 #else
     while (!done) {
-        ++frames;
         loop();
-        }
+    }
 #endif
 
 
     SDLTest_CommonQuit(state);
 
-    /* Print out some timing information */
-    now = SDL_GetTicks();
-    if (now > then) {
-        double fps = ((double) frames * 1000) / (now - then);
-        SDL_Log("%2.2f frames per second\n", fps);
-    }
     return 0;
 }