From 2bf4cb9c453fcb6417cbc361f712672171f6ceb9 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Fri, 5 Jan 2024 15:14:58 +0100 Subject: [PATCH] why is windows so bad --- src/main.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 3375f821..ac48b5f6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -139,17 +139,18 @@ int main(int argc, char** argv) { //); +#if 0 if (render || tick) { std::this_thread::sleep_for(std::chrono::milliseconds(1)); // yield for 1ms } else { -#if 0 + #if 0 // pretty hacky and spins if close to next update // if next loop >= 1ms away, wait 1ms if (time_delta_tick+0.001f < screen->nextTick() && time_delta_render+0.001f < screen->nextRender()) { std::this_thread::sleep_for(std::chrono::milliseconds(1)); // yield for 1ms } -#else + #else // dynamic sleep, sleeps the reminder till next update std::this_thread::sleep_for(std::chrono::duration( std::min( @@ -157,8 +158,12 @@ int main(int argc, char** argv) { screen->nextRender() - time_delta_render ) )); -#endif + #endif } +#else + // msvc stl sleep_until got "clock aware" in oct 2023, gotta be some time until we can use this + std::this_thread::sleep_until(std::chrono::steady_clock::now() + std::chrono::milliseconds(1)); // yield for 1ms +#endif } return 0;