diff options
| author | jacksonmj <mj-pt@jacksonmj.co.uk> | 2011-04-21 20:57:07 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2011-04-22 23:52:59 (GMT) |
| commit | aa3f475edc754ba84b65d83106b91104ac827854 (patch) | |
| tree | a40662ce7cd832b0d344dc7734e69ba7f157f422 /src | |
| parent | 3e1ff2094c2a05885ee88dd51c17b7bb97500c81 (diff) | |
| download | powder-aa3f475edc754ba84b65d83106b91104ac827854.zip powder-aa3f475edc754ba84b65d83106b91104ac827854.tar.gz | |
Stricter frame rate limiting
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -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) { |
