From 0fe28f4759c23e55fe2a5f40f513120907abff4b Mon Sep 17 00:00:00 2001 From: ohyzha Date: Tue, 27 Aug 2024 09:26:10 +0300 Subject: [PATCH] switch to microseconds --- openVulkanoCpp/Host/GraphicsAppManager.cpp | 14 +++----------- openVulkanoCpp/Host/GraphicsAppManager.hpp | 4 ++-- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/openVulkanoCpp/Host/GraphicsAppManager.cpp b/openVulkanoCpp/Host/GraphicsAppManager.cpp index 9377b56..e880467 100644 --- a/openVulkanoCpp/Host/GraphicsAppManager.cpp +++ b/openVulkanoCpp/Host/GraphicsAppManager.cpp @@ -81,25 +81,17 @@ namespace OpenVulkano { if (newFpsCap < 0) { - cappedFrameTime = std::chrono::milliseconds(0); + cappedFrameTime = std::chrono::microseconds(0); } else { - cappedFrameTime = std::chrono::milliseconds(1000 / newFpsCap); + cappedFrameTime = std::chrono::microseconds(1'000'000 / newFpsCap); } } void GraphicsAppManager::OnCappedFPS(const auto& frameStartTime) { - int32_t fpsCap = engineConfig->GetFpsCap(); - fpsCapRemainder += 1000 % fpsCap; - auto expectedFrameTime = cappedFrameTime; - if (fpsCapRemainder >= fpsCap) - { - expectedFrameTime += std::chrono::milliseconds(1); - fpsCapRemainder -= fpsCap; - } - auto frameEndTime = frameStartTime + expectedFrameTime; + auto frameEndTime = frameStartTime + cappedFrameTime; while (clock::now() < frameEndTime) { std::this_thread::yield(); diff --git a/openVulkanoCpp/Host/GraphicsAppManager.hpp b/openVulkanoCpp/Host/GraphicsAppManager.hpp index d28490b..d48704a 100644 --- a/openVulkanoCpp/Host/GraphicsAppManager.hpp +++ b/openVulkanoCpp/Host/GraphicsAppManager.hpp @@ -37,8 +37,8 @@ namespace OpenVulkano RenderAPI::RenderApi renderApi; bool paused = false, running = false; float fpsTimer = 0, avgFps = 0, avgFrameTime = 0; - uint64_t frameCount = 0, lastFrameCount = 0, fpsCapRemainder = 0; - std::chrono::milliseconds cappedFrameTime = std::chrono::milliseconds(0); + uint64_t frameCount = 0, lastFrameCount = 0; + std::chrono::microseconds cappedFrameTime = std::chrono::microseconds(0); Timer frameTimer; std::string windowTitleFormat; Input::InputManager* inputManager;