[Scummvm-cvs-logs] SF.net SVN: scummvm:[43338] scummvm/trunk/engines/kyra/screen.cpp

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Thu Aug 13 02:19:26 CEST 2009


Revision: 43338
          http://scummvm.svn.sourceforge.net/scummvm/?rev=43338&view=rev
Author:   lordhoto
Date:     2009-08-13 00:19:26 +0000 (Thu, 13 Aug 2009)

Log Message:
-----------
Little optimization in Screen::setPaletteIndex, now it only resets the palette, when the color index really changed.

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/screen.cpp

Modified: scummvm/trunk/engines/kyra/screen.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen.cpp	2009-08-13 00:07:37 UTC (rev 43337)
+++ scummvm/trunk/engines/kyra/screen.cpp	2009-08-13 00:19:26 UTC (rev 43338)
@@ -658,10 +658,18 @@
 }
 
 void Screen::setPaletteIndex(uint8 index, uint8 red, uint8 green, uint8 blue) {
-	getPalette(0)[index * 3 + 0] = red;
-	getPalette(0)[index * 3 + 1] = green;
-	getPalette(0)[index * 3 + 2] = blue;
-	setScreenPalette(getPalette(0));
+	Palette &pal = getPalette(0);
+
+	const int offset = index * 3;
+
+	if (pal[offset + 0] == red && pal[offset + 1] == green && pal[offset + 2] == blue)
+		return;
+
+	pal[offset + 0] = red;
+	pal[offset + 1] = green;
+	pal[offset + 2] = blue;
+
+	setScreenPalette(pal);
 }
 
 void Screen::getRealPalette(int num, uint8 *dst) {


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