From aa3f475edc754ba84b65d83106b91104ac827854 Mon Sep 17 00:00:00 2001 From: jacksonmj Date: Fri, 22 Apr 2011 04:57:07 +0800 Subject: [PATCH] Stricter frame rate limiting --- src/main.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main.c b/src/main.c index 381106b8d..a235131ca 100644 --- a/src/main.c +++ b/src/main.c @@ -4267,16 +4267,21 @@ int main(int argc, char *argv[]) FPS++; currentTime = SDL_GetTicks(); elapsedTime = currentTime-pastFPS; + if ((FPS>2 || elapsedTime>1000*2/limitFPS) && elapsedTime && FPS*1000/elapsedTime>limitFPS) + { + while (FPS*1000/elapsedTime>limitFPS) + { + SDL_Delay(1); + currentTime = SDL_GetTicks(); + elapsedTime = currentTime-pastFPS; + } + } if (elapsedTime>=1000) { FPSB = FPS; FPS = 0; pastFPS = currentTime; } - else if (elapsedTime>20 && FPS*1000/elapsedTime>limitFPS) - { - SDL_Delay(5); - } if (hud_enable) {