feat: fully implemented uncapped framerate

This commit is contained in:
Sara 2024-01-18 14:02:02 +01:00
parent 9597d612af
commit 1304b572d7

View file

@ -33,6 +33,13 @@ double get_time_s() {
return tstos(get_time());
}
static
void program_tick(const struct ProgramSettings* settings, float delta_time) {
settings->on_tick();
game_world_update();
physics_world_tick();
}
void program_run(const struct ProgramSettings* settings) {
LOG_INFO("Starting program...");
if(settings->target_fps <= 0) {
@ -73,11 +80,14 @@ void program_run(const struct ProgramSettings* settings) {
_frame_start = current_time;
program_handle_events();
while(_delta_time > _target_delta_time) {
_delta_time -= _target_delta_time;
settings->on_tick();
game_world_update();
physics_world_tick();
if(settings->target_fps == 0) {
program_tick(settings, _delta_time);
_delta_time = 0.f;
} else {
while(_delta_time > _target_delta_time) {
_delta_time -= _target_delta_time;
program_tick(settings, _target_delta_time);
}
}
settings->on_draw();
game_world_draw();