[Scummvm-cvs-logs] CVS: residual engine.cpp,1.90,1.91 engine.h,1.35,1.36 lua.cpp,1.154,1.155

Pawel Kolodziejski aquadran at users.sourceforge.net
Sun Aug 14 06:27:05 CEST 2005


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

Modified Files:
	engine.cpp engine.h lua.cpp 
Log Message:
some changes to user draw mode

Index: engine.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/engine.cpp,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -d -r1.90 -r1.91
--- engine.cpp	13 Aug 2005 20:14:46 -0000	1.90
+++ engine.cpp	14 Aug 2005 13:26:37 -0000	1.91
@@ -153,6 +153,26 @@
 	if (resource == NULL)
 		warning("Requested resouce (%s) not found!");
 }
+void Engine::drawPrimitives() {
+	// Draw Primitives
+	for (PrimitiveListType::iterator i = _primitiveObjects.begin(); i != _primitiveObjects.end(); i++) {
+		(*i)->draw();
+	}
+
+	// Draw text
+	for (TextListType::iterator i = _textObjects.begin(); i != _textObjects.end(); i++) {
+		(*i)->draw();
+	}
+
+	if (_mode == ENGINE_MODE_DRAW) {
+		g_engine->killPrimitiveObjects();
+		g_engine->killTextObjects();
+
+		// Cleanup references to deleted text objects
+		for (Engine::ActorListType::const_iterator i = g_engine->actorsBegin(); i != g_engine->actorsEnd(); i++)
+			(*i)->lineCleanup();
+	}
+}
 
 void Engine::luaUpdate() {
 	// Update timing information
@@ -279,21 +299,14 @@
 			if (drawHandler != LUA_NOOBJECT)
 				lua_callfunction(drawHandler);
 			lua_endblock();
+
+			g_driver->flipBuffer();
 		}
 		_refreshDrawNeeded = false;
+		return;
 	}
 
-	// Draw Primitives
-	for (PrimitiveListType::iterator i = _primitiveObjects.begin(); i != _primitiveObjects.end(); i++) {
-		(*i)->draw();
-		doFlip = true;
-	}
-
-	// Draw text
-	for (TextListType::iterator i = _textObjects.begin(); i != _textObjects.end(); i++) {
-		(*i)->draw();
-		doFlip = true;
-	}
+	drawPrimitives();
 
 	if (SHOWFPS_GLOBAL)
 		g_driver->drawEmergString(550, 25, fps, Color(255, 255, 255));

Index: engine.h
===================================================================
RCS file: /cvsroot/scummvm/residual/engine.h,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- engine.h	13 Aug 2005 16:25:51 -0000	1.35
+++ engine.h	14 Aug 2005 13:26:37 -0000	1.36
@@ -106,6 +106,7 @@
 	void setFlipEnable(bool state) { _flipEnable = state; }
 	bool getFlipEnable() { return _flipEnable; }
 	void refreshDrawMode() { _refreshDrawNeeded = true; }
+	void drawPrimitives();
 
 	void mainLoop();
 	unsigned frameStart() const { return _frameStart; }

Index: lua.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/lua.cpp,v
retrieving revision 1.154
retrieving revision 1.155
diff -u -d -r1.154 -r1.155
--- lua.cpp	13 Aug 2005 20:14:46 -0000	1.154
+++ lua.cpp	14 Aug 2005 13:26:37 -0000	1.155
@@ -30,6 +30,7 @@
 #include "objectstate.h"
 #include "colormap.h"
 #include "font.h"
+#include "primitives.h"
 
 #include "imuse/imuse.h"
 
@@ -2263,12 +2264,7 @@
 
 static void CleanBuffer() {
 	DEBUG_FUNCTION();
-	g_engine->killPrimitiveObjects();
-	g_engine->killTextObjects();
-	// Cleanup references to deleted text objects
-	for (Engine::ActorListType::const_iterator i = g_engine->actorsBegin(); i != g_engine->actorsEnd(); i++)
-		(*i)->lineCleanup();
-	//g_driver->copyStoredToDisplay();
+	g_driver->copyStoredToDisplay();
 }
  
 /* This function sends the SDL signal to
@@ -2927,7 +2923,6 @@
 		g_smush->pause(false);
 		g_engine->refreshDrawMode();
 		g_engine->setMode(g_engine->getPreviousMode());
-		CleanBuffer();
 	} else {
 		error("RenderModeUser() Unknown type of param");
 	}
@@ -2941,8 +2936,10 @@
 
 static void Display() {
 	DEBUG_FUNCTION();
-	if (g_engine->getFlipEnable())
+	if (g_engine->getFlipEnable()) {
+		g_engine->drawPrimitives();
 		g_driver->flipBuffer();
+	}
 }
 
 static void EngineDisplay() {





More information about the Scummvm-git-logs mailing list