[Scummvm-cvs-logs] SF.net SVN: scummvm:[33798] residual/trunk/engine

aquadran at users.sourceforge.net aquadran at users.sourceforge.net
Tue Aug 12 16:55:17 CEST 2008


Revision: 33798
          http://scummvm.svn.sourceforge.net/scummvm/?rev=33798&view=rev
Author:   aquadran
Date:     2008-08-12 14:55:16 +0000 (Tue, 12 Aug 2008)

Log Message:
-----------
release last smush frame in gl driver

Modified Paths:
--------------
    residual/trunk/engine/backend/platform/driver.h
    residual/trunk/engine/backend/platform/sdl/driver_gl.cpp
    residual/trunk/engine/backend/platform/sdl/driver_gl.h
    residual/trunk/engine/backend/platform/sdl/driver_tinygl.cpp
    residual/trunk/engine/backend/platform/sdl/driver_tinygl.h
    residual/trunk/engine/engine.cpp

Modified: residual/trunk/engine/backend/platform/driver.h
===================================================================
--- residual/trunk/engine/backend/platform/driver.h	2008-08-12 14:52:44 UTC (rev 33797)
+++ residual/trunk/engine/backend/platform/driver.h	2008-08-12 14:55:16 UTC (rev 33798)
@@ -128,6 +128,7 @@
 
 	virtual void prepareSmushFrame(int width, int height, byte *bitmap) = 0;
 	virtual void drawSmushFrame(int offsetX, int offsetY) = 0;
+	virtual void releaseSmushFrame() = 0;
 
 	virtual const char *getVideoDeviceName() = 0;
 

Modified: residual/trunk/engine/backend/platform/sdl/driver_gl.cpp
===================================================================
--- residual/trunk/engine/backend/platform/sdl/driver_gl.cpp	2008-08-12 14:52:44 UTC (rev 33797)
+++ residual/trunk/engine/backend/platform/sdl/driver_gl.cpp	2008-08-12 14:55:16 UTC (rev 33798)
@@ -713,6 +713,14 @@
 	glEnable(GL_LIGHTING);
 }
 
+void DriverGL::releaseSmushFrame() {
+	if (_smushNumTex > 0) {
+		glDeleteTextures(_smushNumTex, _smushTexIds);
+		delete[] _smushTexIds;
+		_smushNumTex = 0;
+	}
+}
+
 void DriverGL::loadEmergFont() {
 	glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
 

Modified: residual/trunk/engine/backend/platform/sdl/driver_gl.h
===================================================================
--- residual/trunk/engine/backend/platform/sdl/driver_gl.h	2008-08-12 14:52:44 UTC (rev 33797)
+++ residual/trunk/engine/backend/platform/sdl/driver_gl.h	2008-08-12 14:55:16 UTC (rev 33798)
@@ -103,6 +103,7 @@
 
 	void prepareSmushFrame(int width, int height, byte *bitmap);
 	void drawSmushFrame(int offsetX, int offsetY);
+	void releaseSmushFrame();
 
 protected:
 

Modified: residual/trunk/engine/backend/platform/sdl/driver_tinygl.cpp
===================================================================
--- residual/trunk/engine/backend/platform/sdl/driver_tinygl.cpp	2008-08-12 14:52:44 UTC (rev 33797)
+++ residual/trunk/engine/backend/platform/sdl/driver_tinygl.cpp	2008-08-12 14:55:16 UTC (rev 33798)
@@ -579,6 +579,9 @@
 	}
 }
 
+void DriverTinyGL::releaseSmushFrame() {
+}
+
 void DriverTinyGL::loadEmergFont() {
 }
 

Modified: residual/trunk/engine/backend/platform/sdl/driver_tinygl.h
===================================================================
--- residual/trunk/engine/backend/platform/sdl/driver_tinygl.h	2008-08-12 14:52:44 UTC (rev 33797)
+++ residual/trunk/engine/backend/platform/sdl/driver_tinygl.h	2008-08-12 14:55:16 UTC (rev 33798)
@@ -103,6 +103,7 @@
 
 	void prepareSmushFrame(int width, int height, byte *bitmap);
 	void drawSmushFrame(int offsetX, int offsetY);
+	void releaseSmushFrame();
 
 protected:
 

Modified: residual/trunk/engine/engine.cpp
===================================================================
--- residual/trunk/engine/engine.cpp	2008-08-12 14:52:44 UTC (rev 33797)
+++ residual/trunk/engine/engine.cpp	2008-08-12 14:55:16 UTC (rev 33798)
@@ -283,7 +283,8 @@
 						g_driver->drawEmergString(550, 25, _fps, Color(255, 255, 255));
 				} else
 					_doFlip = false;
-			}
+			} else
+				g_driver->releaseSmushFrame();
 		}
 		drawPrimitives();
 	} else if (_mode == ENGINE_MODE_NORMAL) {
@@ -332,6 +333,8 @@
 			}
 			if (g_smush->getFrame() > 0)
 				g_driver->drawSmushFrame(g_smush->getX(), g_smush->getY());
+			else
+				g_driver->releaseSmushFrame();
 		}
 
 		// Underlay objects are just above the background


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