[Scummvm-cvs-logs] SF.net SVN: scummvm:[49690] scummvm/trunk/engines/sci

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Tue Jun 15 12:09:43 CEST 2010


Revision: 49690
          http://scummvm.svn.sourceforge.net/scummvm/?rev=49690&view=rev
Author:   thebluegr
Date:     2010-06-15 10:09:42 +0000 (Tue, 15 Jun 2010)

Log Message:
-----------
Throttle screen updates to 60fps in some screen transition effects as well

Modified Paths:
--------------
    scummvm/trunk/engines/sci/event.cpp
    scummvm/trunk/engines/sci/graphics/paint16.cpp
    scummvm/trunk/engines/sci/graphics/transitions.cpp

Modified: scummvm/trunk/engines/sci/event.cpp
===================================================================
--- scummvm/trunk/engines/sci/event.cpp	2010-06-15 09:11:26 UTC (rev 49689)
+++ scummvm/trunk/engines/sci/event.cpp	2010-06-15 10:09:42 UTC (rev 49690)
@@ -321,9 +321,7 @@
 
 	// 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) {
+	if (g_system->getMillis() - g_sci->getEngineState()->_screenUpdateTime >= 1000 / 60) {
 		g_system->updateScreen();
 		g_sci->getEngineState()->_screenUpdateTime = g_system->getMillis();
 	}

Modified: scummvm/trunk/engines/sci/graphics/paint16.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/paint16.cpp	2010-06-15 09:11:26 UTC (rev 49689)
+++ scummvm/trunk/engines/sci/graphics/paint16.cpp	2010-06-15 10:09:42 UTC (rev 49690)
@@ -561,11 +561,21 @@
 		if (directions & SCI_SHAKE_DIRECTION_VERTICAL)
 			_screen->setVerticalShakePos(10);
 		// TODO: horizontal shakes
-		g_system->updateScreen();
+
+		if (g_system->getMillis() - g_sci->getEngineState()->_screenUpdateTime >= 1000 / 60) {
+			g_system->updateScreen();
+			g_sci->getEngineState()->_screenUpdateTime = g_system->getMillis();
+		}
+
 		_gui->wait(3);
 		if (directions & SCI_SHAKE_DIRECTION_VERTICAL)
 			_screen->setVerticalShakePos(0);
-		g_system->updateScreen();
+
+		if (g_system->getMillis() - g_sci->getEngineState()->_screenUpdateTime >= 1000 / 60) {
+			g_system->updateScreen();
+			g_sci->getEngineState()->_screenUpdateTime = g_system->getMillis();
+		}
+
 		_gui->wait(3);
 	}
 }

Modified: scummvm/trunk/engines/sci/graphics/transitions.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/transitions.cpp	2010-06-15 09:11:26 UTC (rev 49689)
+++ scummvm/trunk/engines/sci/graphics/transitions.cpp	2010-06-15 10:09:42 UTC (rev 49690)
@@ -440,8 +440,12 @@
 			}
 			stepNr++;
 		}
-		if ((stepNr & 1) == 0)
-			g_system->updateScreen();
+		if ((stepNr & 1) == 0) {
+			if (g_system->getMillis() - g_sci->getEngineState()->_screenUpdateTime >= 1000 / 60) {
+				g_system->updateScreen();
+				g_sci->getEngineState()->_screenUpdateTime = g_system->getMillis();
+			}
+		}
 		break;
 
 	case SCI_TRANSITIONS_SCROLL_RIGHT:
@@ -461,8 +465,12 @@
 			}
 			stepNr++;
 		}
-		if ((stepNr & 1) == 0)
-			g_system->updateScreen();
+		if ((stepNr & 1) == 0) {
+			if (g_system->getMillis() - g_sci->getEngineState()->_screenUpdateTime >= 1000 / 60) {
+				g_system->updateScreen();
+				g_sci->getEngineState()->_screenUpdateTime = g_system->getMillis();
+			}
+		}
 		break;
 
 	case SCI_TRANSITIONS_SCROLL_UP:


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list