From a8bcacc95045102e67f2feabbdddf79535837554 Mon Sep 17 00:00:00 2001 From: jacopograndi Date: Thu, 19 Aug 2021 18:46:51 +0200 Subject: forgot to make repo until now --- timing/timing.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 timing/timing.cpp (limited to 'timing/timing.cpp') diff --git a/timing/timing.cpp b/timing/timing.cpp new file mode 100644 index 0000000..37c5f40 --- /dev/null +++ b/timing/timing.cpp @@ -0,0 +1,44 @@ +#include "timing.h" + +timing_sdl::timing_sdl (double fps) { + frame_time = 1/fps; + last_time = SDL_GetTicks(); + frame_counter = 0; + tot_time = 0; + unprocessed_time = 0; + frames = 0; + render = false; +} + +void timing_sdl::process () { + render = false; + + double startTime = SDL_GetTicks(); + double passedTime = (startTime - last_time)/1000; + last_time = startTime; + + unprocessed_time += passedTime; + frame_counter += passedTime; + tot_time += passedTime; + + if (frame_counter >= 1.0) { + //printf("FPS: %i | %f ms\n", frames, 1000.0 / ((double)frames)); + frames = 0; + frame_counter = 0; + } +} + +bool timing_sdl::check_process () { + if (unprocessed_time > frame_time) { + render = true; + unprocessed_time -= frame_time; + return true; + } else { + return false; + } +} + +bool timing_sdl::check_render () { + if (render) { frames ++; } + return render; +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf