From 5a3cd9a9f6d7f547eea3472aa680478b5d24717b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Mart=C3=ADnez?= Date: Sat, 26 Oct 2019 00:46:08 +0200 Subject: [PATCH] Revert "Fix dt" This reverts commit c3ef298c90d2da4c09d465800c3b7f38d84e251d. --- WhispEngine/WhispEngine/Application.cpp | 32 +++++++++++++++++++++++-- WhispEngine/WhispEngine/Application.h | 1 + 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/WhispEngine/WhispEngine/Application.cpp b/WhispEngine/WhispEngine/Application.cpp index 912ec8f..f4a174e 100644 --- a/WhispEngine/WhispEngine/Application.cpp +++ b/WhispEngine/WhispEngine/Application.cpp @@ -37,6 +37,8 @@ Application::Application() hardware = new HardwareInfo(); file_system = new FileSystem(); random = new Random(); + + first_frame = true; } Application::~Application() @@ -85,13 +87,34 @@ void Application::PrepareUpdate() { dt = 0.0f; } + else if (first_frame) + { + + dt = 1.0f / framerate_cap; + } else { - dt = frame_time.Read(); - frame_time.Start(); + double framerate = 1000.00 / perfect_frame_time.ReadMs(); + + dt = 1.0f / framerate; + + if (dt > 1.0f / (float)framerate_cap + 0.02f) + { + dt = 1.0f / (float)framerate_cap + 0.02f; + } } perfect_frame_time.Start(); + + // Change frame cap/Pause Game ======================================== + if (input->GetKey(SDL_SCANCODE_F10) == KEY_DOWN) + { + apply_cap_frames = !apply_cap_frames; + } + if (input->GetKey(SDL_SCANCODE_F11) == KEY_DOWN) + { + pause_game = !pause_game; + } } @@ -198,6 +221,11 @@ void Application::FinishUpdate() LoadConfNow(); } + if (first_frame == true) + { + first_frame = false; + } + if (last_sec_frame_time.Read() >= 1000) { last_sec_frame_time.Start(); diff --git a/WhispEngine/WhispEngine/Application.h b/WhispEngine/WhispEngine/Application.h index bf6d535..e36a4b2 100644 --- a/WhispEngine/WhispEngine/Application.h +++ b/WhispEngine/WhispEngine/Application.h @@ -50,6 +50,7 @@ class Application std::string organization; std::string version; + bool first_frame = true; float dt = 0.0f; Timer last_sec_frame_time;