From 949eb5b1b8a1835cc872741930fef767b0885e36 Mon Sep 17 00:00:00 2001 From: pommicket Date: Sat, 31 Dec 2022 10:46:58 -0500 Subject: only set swap interval if needed --- main.c | 10 +++++++++- ted.cfg | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index c261817..5a86677 100644 --- a/main.c +++ b/main.c @@ -1147,7 +1147,15 @@ int main(int argc, char **argv) { SDL_Delay((u32)ms_wait); } } - SDL_GL_SetSwapInterval(settings->vsync ? 1 : 0); + + // i don't know if SDL_GL_SetSwapInterval is slow on any platform + // (if you're not actually changing it). just in case, let's make sure + // we only call it when the vsync setting actually changes. + static int prev_vsync = -1; + if (settings->vsync != prev_vsync) { + prev_vsync = settings->vsync; + SDL_GL_SetSwapInterval(settings->vsync ? 1 : 0); + } SDL_GL_SwapWindow(window); } PROFILE_TIME(frame_end) diff --git a/ted.cfg b/ted.cfg index 05116a5..52978cf 100644 --- a/ted.cfg +++ b/ted.cfg @@ -52,7 +52,7 @@ max-file-size = 20000000 max-file-size-view-only = 100000000 # whether to use vsync or not. you probably want this on. -vsync = off +vsync = on # max framerate. vsync overrides this. # you might want to increase this if you have a >60Hz monitor and you don't care about CPU usage. framerate-cap = 60 -- cgit v1.2.3