[Scummvm-cvs-logs] CVS: residual driver_gl.cpp,1.5,1.6 engine.cpp,1.16,1.17

James Brown ender at users.sourceforge.net
Tue Feb 24 22:08:02 CET 2004


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

Modified Files:
	driver_gl.cpp engine.cpp 
Log Message:
Fix flickering, remove duplicated code, optimised for full screen animations


Index: driver_gl.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/driver_gl.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- driver_gl.cpp	24 Feb 2004 21:09:53 -0000	1.5
+++ driver_gl.cpp	25 Feb 2004 05:52:47 -0000	1.6
@@ -207,7 +207,7 @@
 	glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
 	glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
 
-	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+//	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
 	// prepare view
 	glMatrixMode(GL_PROJECTION);

Index: engine.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/engine.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- engine.cpp	24 Feb 2004 21:09:53 -0000	1.16
+++ engine.cpp	25 Feb 2004 05:52:47 -0000	1.17
@@ -85,64 +85,45 @@
 	if (SCREENBLOCKS_GLOBAL == 1)
 		screenBlocksReset();
 
-	// Draw the screen
-	g_driver->clearScreen();
-
-	Bitmap::prepareDraw();
-	if (currScene_ != NULL)
-		currScene_->drawBackground();
-
-	glEnable(GL_DEPTH_TEST);
-	if (currScene_ != NULL)
-		currScene_->setupCamera();
-
-	glMatrixMode(GL_MODELVIEW);
 	// Update actor costumes
 	for (actor_list_type::iterator i = actors_.begin(); i != actors_.end(); i++) {
 		Actor *a = *i;
 		assert(currScene_);
 		if (a->inSet(currScene_->name()) && a->visible())
 			a->update();
-	}
-
-	// Draw actors
-	glEnable(GL_TEXTURE_2D);
-	for (actor_list_type::iterator i = actors_.begin(); i != actors_.end(); i++) {
-		Actor *a = *i;
-		if (a->inSet(currScene_->name()) && a->visible())
-			a->draw();
-	}
-	glDisable(GL_TEXTURE_2D);
-
-	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-	if (SCREENBLOCKS_GLOBAL == 1)
-		screenBlocksBlitDirtyBlocks();
+	} 
 
 	if (g_smush->isPlaying()) {
 		if (g_smush->isUpdateNeeded()) {
+			g_driver->clearScreen();
 			g_driver->drawSMUSHframe(g_smush->getX(), g_smush->getY(), g_smush->getWidth(), g_smush->getHeight(), g_smush->getDstPtr());
 			g_smush->clearUpdateNeeded();
 		}
 	} else {
+		glMatrixMode(GL_MODELVIEW);
+		g_driver->clearScreen();
+
+		if (SCREENBLOCKS_GLOBAL == 1)
+			screenBlocksBlitDirtyBlocks();
+
 		Bitmap::prepareDraw();
 		if (currScene_ != NULL)
 			currScene_->drawBackground();
-	}
 
-	glEnable(GL_DEPTH_TEST);
-	if (currScene_ != NULL)
-		currScene_->setupCamera();
+		glEnable(GL_DEPTH_TEST);
+		if (currScene_ != NULL)
+			currScene_->setupCamera();
 
-	// Draw actors
-	glEnable(GL_TEXTURE_2D);
-	for (actor_list_type::iterator i = actors_.begin(); i != actors_.end(); i++) {
-		Actor *a = *i;
-		if (a->inSet(currScene_->name()) && a->visible())
-			a->draw();
+		// Draw actors
+		glEnable(GL_TEXTURE_2D);
+		for (actor_list_type::iterator i = actors_.begin(); i != actors_.end(); i++) {
+			Actor *a = *i;
+			if (a->inSet(currScene_->name()) && a->visible())
+				a->draw();
+		}
+		glDisable(GL_TEXTURE_2D);
+		//screenBlocksDrawDebug();
 	}
-	glDisable(GL_TEXTURE_2D);
-
-	//screenBlocksDrawDebug();
 
 	// Draw text
 	for (text_list_type::iterator i = textObjects_.begin();





More information about the Scummvm-git-logs mailing list