[Scummvm-cvs-logs] CVS: scummvm/common scaler.cpp,1.21,1.22

Bertrand Augereau tramboi at users.sourceforge.net
Sun Jun 22 04:53:06 CEST 2003


Update of /cvsroot/scummvm/scummvm/common
In directory sc8-pr-cvs1:/tmp/cvs-serv23948

Modified Files:
	scaler.cpp 
Log Message:
Reduced the number of shifts in highly used functions in Super2xSaI and SuperEagle

Index: scaler.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/scaler.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- scaler.cpp	12 Jun 2003 15:20:58 -0000	1.21
+++ scaler.cpp	22 Jun 2003 11:52:40 -0000	1.22
@@ -90,17 +90,19 @@
 }
 
 static inline uint32 INTERPOLATE(uint32 A, uint32 B) {
-	if (A != B) {
-		return (((A & colorMask) >> 1) + ((B & colorMask) >> 1) + (A & B & lowPixelMask));
+	if (A != B) {	
+		// Non regression test
+		assert ((((A & colorMask) + (B & colorMask)) >> 1) + (A & B & lowPixelMask)==(((A & colorMask) >> 1) + ((B & colorMask) >> 1) + (A & B & lowPixelMask)));
+		return (((A & colorMask) + (B & colorMask)) >> 1) + (A & B & lowPixelMask);
 	} else
 		return A;
 }
 
 static inline uint32 Q_INTERPOLATE(uint32 A, uint32 B, uint32 C, uint32 D) {
-	register uint32 x = ((A & qcolorMask) >> 2) +
-		((B & qcolorMask) >> 2) + ((C & qcolorMask) >> 2) + ((D & qcolorMask) >> 2);
-	register uint32 y = (A & qlowpixelMask) +
-		(B & qlowpixelMask) + (C & qlowpixelMask) + (D & qlowpixelMask);
+	register uint32 x = ((A & qcolorMask) + (B & qcolorMask) + (C & qcolorMask) + (D & qcolorMask))>>2;
+	// Non regression test
+	assert (x==((A & qcolorMask) >> 2) + ((B & qcolorMask) >> 2) + ((C & qcolorMask) >> 2) + ((D & qcolorMask) >> 2));
+	register uint32 y = (A & qlowpixelMask) + (B & qlowpixelMask) + (C & qlowpixelMask) + (D & qlowpixelMask);
 
 	y = (y >> 2) & qlowpixelMask;
 	return x + y;





More information about the Scummvm-git-logs mailing list