aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/event.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2010-06-14 08:36:52 +0000
committerFilippos Karapetis2010-06-14 08:36:52 +0000
commitcfdbfaa28eb29cb17185d3d3d1ddde8c89a369c1 (patch)
tree14a22812a24961c16da27de73b1b6056b367f9a5 /engines/sci/event.cpp
parent58487da20bf0115cfdefc2769c831c64b22d524c (diff)
downloadscummvm-rg350-cfdbfaa28eb29cb17185d3d3d1ddde8c89a369c1.tar.gz
scummvm-rg350-cfdbfaa28eb29cb17185d3d3d1ddde8c89a369c1.tar.bz2
scummvm-rg350-cfdbfaa28eb29cb17185d3d3d1ddde8c89a369c1.zip
SCI: Limit the screen refresh rate to 60fps
svn-id: r49647
Diffstat (limited to 'engines/sci/event.cpp')
-rw-r--r--engines/sci/event.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/sci/event.cpp b/engines/sci/event.cpp
index cdddb26ca4..ed9c4bfd0d 100644
--- a/engines/sci/event.cpp
+++ b/engines/sci/event.cpp
@@ -319,8 +319,14 @@ sciEvent EventManager::get(unsigned int mask) {
//sci_event_t error_event = { SCI_EVT_ERROR, 0, 0, 0 };
sciEvent event = { 0, 0, 0, 0 };
- // Update the screen here, since it's called very often
- g_system->updateScreen();
+ // Update the screen here, since it's called very often.
+ // Throttle the screen update rate to 60fps.
+ uint32 curTime = g_system->getMillis();
+ uint32 duration = curTime - g_sci->getEngineState()->_screenUpdateTime;
+ if (duration >= 1000 / 60) {
+ g_system->updateScreen();
+ g_sci->getEngineState()->_screenUpdateTime = g_system->getMillis();
+ }
// Get all queued events from graphics driver
do {