From 7c4a8c656591ba48f81dce90ac482d24724a593e Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Sun, 1 Apr 2007 14:53:03 +0000 Subject: Make the mouse cursor move more smoothly. (Most of this improvement actually comes from calling processEvents(), not from calling updateScreen() more often.) svn-id: r26350 --- engines/touche/touche.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'engines') diff --git a/engines/touche/touche.cpp b/engines/touche/touche.cpp index badcfc24dd..61b765bc55 100644 --- a/engines/touche/touche.cpp +++ b/engines/touche/touche.cpp @@ -268,14 +268,18 @@ void ToucheEngine::mainLoop() { fadePaletteFromFlags(); } - _system->updateScreen(); - int delay = _system->getMillis() - frameTimeStamp; - delay = (_fastMode ? 10 : kCycleDelay) - delay; - if (delay < 1) { - delay = 1; - } - _system->delayMillis(delay); - frameTimeStamp = _system->getMillis(); + uint32 nextFrame = frameTimeStamp + (_fastMode ? 10 : kCycleDelay); + uint32 now = _system->getMillis(); + if (nextFrame < now) { + nextFrame = now + 1; + } + while (now < nextFrame) { + processEvents(); + _system->updateScreen(); + now = _system->getMillis(); + _system->delayMillis((nextFrame - now >= 10) ? 10 : nextFrame - now); + } + frameTimeStamp = nextFrame; } writeConfigurationSettings(); -- cgit v1.2.3