[Scummvm-cvs-logs] CVS: residual engine.cpp,1.99,1.100 engine.h,1.40,1.41

Pawel Kolodziejski aquadran at users.sourceforge.net
Sat Jan 21 09:23:02 CET 2006


Update of /cvsroot/scummvm/residual
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9055

Modified Files:
	engine.cpp engine.h 
Log Message:
added speed main loop limit

Index: engine.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/engine.cpp,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -d -r1.99 -r1.100
--- engine.cpp	26 Dec 2005 19:26:46 -0000	1.99
+++ engine.cpp	21 Jan 2006 17:22:39 -0000	1.100
@@ -68,6 +68,7 @@
 	_textSpeed = 6;
 	_mode = _previousMode = ENGINE_MODE_IDLE;
 	_flipEnable = true;
+	_lastUpdateTime = 0;
 	_refreshDrawNeeded = true;
 	g_searchFile = NULL;
 	_savedState = NULL;
@@ -217,6 +218,12 @@
 void Engine::luaUpdate() {
 	// Update timing information
 	unsigned newStart = SDL_GetTicks();
+	if (newStart < _frameStart) {
+		_frameStart = newStart;
+		return;
+	}
+	if (newStart - _frameStart < 30)
+		return;
 	_frameTime = newStart - _frameStart;
 	_frameStart = newStart;
 
@@ -239,6 +246,17 @@
 }
 
 void Engine::updateDisplayScene() {
+	uint32 newTime = SDL_GetTicks();
+	if (newTime < _lastUpdateTime) {
+		_lastUpdateTime = newTime;
+		_doFlip = false;
+	}
+	if (newTime - _lastUpdateTime < 30) {
+		_doFlip = false;
+		return;
+	}
+	_lastUpdateTime = newTime;
+
 	_doFlip = true;
 
 	if (_mode == ENGINE_MODE_SMUSH) {
@@ -349,15 +367,12 @@
 }
 
 void Engine::doFlip() {
-	if (SHOWFPS_GLOBAL)
+	if (SHOWFPS_GLOBAL && _doFlip)
 		g_driver->drawEmergString(550, 25, _fps, Color(255, 255, 255));
 
 	if (_doFlip && _flipEnable)
 		g_driver->flipBuffer();
 
-	// don't kill CPU
-	SDL_Delay(1);
-
 	if (SHOWFPS_GLOBAL && _doFlip) {
 		_frameCounter++;
 		_timeAccum += _frameTime;

Index: engine.h
===================================================================
RCS file: /cvsroot/scummvm/residual/engine.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -d -r1.40 -r1.41
--- engine.h	26 Dec 2005 19:26:46 -0000	1.40
+++ engine.h	21 Jan 2006 17:22:39 -0000	1.41
@@ -220,6 +220,7 @@
 	int _speechMode;
 	int _textSpeed;
 	bool _flipEnable;
+	uint32 _lastUpdateTime;
 	bool _refreshDrawNeeded;
 	char _fps[8];
 	bool _doFlip;





More information about the Scummvm-git-logs mailing list