Skip to content

Commit

Permalink
testsprite2: report average FPS in blocks of five seconds.
Browse files Browse the repository at this point in the history
This makes the reporting more accurate, vs startup inefficiencies and other
scheduling burps.
  • Loading branch information
icculus committed Sep 20, 2018
1 parent a2f7af9 commit e0cc19f
Showing 1 changed file with 16 additions and 9 deletions.
25 changes: 16 additions & 9 deletions test/testsprite2.c
Expand Up @@ -37,6 +37,8 @@ static SDL_Rect *positions;
static SDL_Rect *velocities;
static int sprite_w, sprite_h;
static SDL_BlendMode blendMode = SDL_BLENDMODE_BLEND;
static Uint32 next_fps_check, frames;
static const Uint32 fps_check_delay = 5000;

/* Number of iterations to move sprites - used for visual tests. */
/* -1: infinite random moves (default); >=0: enables N deterministic moves */
Expand Down Expand Up @@ -244,6 +246,7 @@ MoveSprites(SDL_Renderer * renderer, SDL_Texture * sprite)
void
loop()
{
Uint32 now;
int i;
SDL_Event event;

Expand All @@ -261,13 +264,24 @@ 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;
Uint64 seed;
const char *icon = "icon.bmp";

Expand Down Expand Up @@ -384,24 +398,17 @@ 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

/* 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);
}
quit(0);
return 0;
}
Expand Down

0 comments on commit e0cc19f

Please sign in to comment.