diff options
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -566,9 +566,7 @@ int main(int argc, char **argv) { #if DEBUG //printf("\033[H\033[2J"); #endif - #if PROFILE double frame_start = time_get_seconds(); - #endif SDL_Event event; Uint8 const *keyboard_state = SDL_GetKeyboardState(NULL); @@ -889,8 +887,8 @@ int main(int argc, char **argv) { glFinish(); - #if PROFILE double frame_end_noswap = time_get_seconds(); + #if PROFILE { print("Frame (noswap): %.1f ms\n", (frame_end_noswap - frame_start) * 1000); } @@ -901,7 +899,12 @@ int main(int argc, char **argv) { SDL_SetWindowTitle(window, ted->window_title); SDL_SetCursor(ted->cursor); - + + i32 ms_wait = (i32)((frame_end_noswap - frame_start) * 1000); + if (ms_wait > 0) { + ms_wait -= 1; // give swap an extra ms to make sure it's actually vsynced + SDL_Delay(ms_wait); + } SDL_GL_SwapWindow(window); PROFILE_TIME(frame_end); |