why is windows so bad

This commit is contained in:
Green Sky 2024-01-05 15:14:58 +01:00
parent 5a0252d8d0
commit 14fcaf1d7e
No known key found for this signature in database

View File

@ -139,26 +139,40 @@ int main(int argc, char** argv) {
//); //);
#if 1
if (render || tick) { if (render || tick) {
std::this_thread::sleep_for(std::chrono::milliseconds(1)); // yield for 1ms // why is windows like this
//std::this_thread::sleep_for(std::chrono::milliseconds(1)); // yield for 1ms
SDL_Delay(1); // yield for 1ms
} else { } else {
#if 0 #if 0
// pretty hacky and spins if close to next update // pretty hacky and spins if close to next update
// if next loop >= 1ms away, wait 1ms // if next loop >= 1ms away, wait 1ms
if (time_delta_tick+0.001f < screen->nextTick() && time_delta_render+0.001f < screen->nextRender()) { 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 std::this_thread::sleep_for(std::chrono::milliseconds(1)); // yield for 1ms
} }
#else #else
// dynamic sleep, sleeps the reminder till next update // dynamic sleep, sleeps the reminder till next update
std::this_thread::sleep_for(std::chrono::duration<float, std::chrono::seconds::period>( //std::this_thread::sleep_for(std::chrono::duration<float, std::chrono::seconds::period>(
//std::min<float>(
//screen->nextTick() - time_delta_tick,
//screen->nextRender() - time_delta_render
//)
//));
SDL_Delay(uint32_t(
std::min<float>( std::min<float>(
screen->nextTick() - time_delta_tick, screen->nextTick() - time_delta_tick,
screen->nextRender() - time_delta_render screen->nextRender() - time_delta_render
) ) * 1000.f
)); ));
#endif #endif
} }
#else
// why is windows like this
//std::this_thread::sleep_for(std::chrono::milliseconds(1)); // yield for 1ms
SDL_Delay(1); // yield for 1ms
#endif
} }
return 0; return 0;