// --------------------------------------------- void j1App::FinishUpdate() { if(want_to_save == true) SavegameNow(); if(want_to_load == true) LoadGameNow(); // Framerate calculations -- if(last_sec_frame_time.Read() > 1000) { last_sec_frame_time.Start(); prev_last_sec_frame_count = last_sec_frame_count; last_sec_frame_count = 0; } float avg_fps = float(frame_count) / startup_time.ReadSec(); float seconds_since_startup = startup_time.ReadSec(); uint32 last_frame_ms = frame_time.Read(); uint32 frames_on_last_update = prev_last_sec_frame_count; static char title[256]; sprintf_s(title, 256, "Av.FPS: %.2f Last Frame Ms: %u Last sec frames: %i Last dt: %.3f Time since startup: %.3f Frame Count: %lu ", avg_fps, last_frame_ms, frames_on_last_update, dt, seconds_since_startup, frame_count); App->win->SetTitle(title); if(capped_ms > 0 && last_frame_ms < capped_ms) { j1PerfTimer t; SDL_Delay(capped_ms - last_frame_ms); LOG("We waited for %d milliseconds and got back in %f", capped_ms - last_frame_ms, t.ReadMs()); } }
// --------------------------------------------- void j1App::FinishUpdate() { if(want_to_save == true) SavegameNow(); if(want_to_load == true) LoadGameNow(); }
// --------------------------------------------- void j1App::FinishUpdate() { if(want_to_save == true) SavegameNow(); if(want_to_load == true) LoadGameNow(); // TODO 4: Now calculate: // Amount of frames since startup // Amount of time since game start (use a low resolution timer) // Average FPS for the whole game life // Amount of ms took the last update // Amount of frames during the last second startupTime = timerPerf->ReadMs(timeAppStart); //framesSinceStartup = timerPerf->ReadTicks(timeAppStart); timeUpdateFinish = timerPerf->ReadMs(timeUpdateStart); //framesSinceStartup++; lastInterval += timeUpdateFinish; float avg_fps = 0.0f; avg_fps = (float)(framesSinceStartup / (lastInterval)); float seconds_since_startup = startupTime; float dt = timeUpdateFinish; uint32 frames_on_last_update = 0; uint32 last_frame_ms = timeUpdateFinish; uint64 frame_count = framesSinceStartup; static char title[256]; sprintf_s(title, 256, "Av.FPS: %.2f Last Frame Ms: %u Last sec frames: %i Last dt: %.3f Time since startup: %.3f Frame Count: %lu ", avg_fps, last_frame_ms, frames_on_last_update, dt, seconds_since_startup, frame_count); App->win->SetTitle(title); }