testdraw2: display FPS similarly to testsprit2. fix helper syntax
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
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;
}