(svn r13721) -Codechange: one less multiplication for colour mixing in 32bpp blitters (GeekToo)
authorsmatz
Thu, 17 Jul 2008 23:43:47 +0000
changeset 11163 7034daa18792
parent 11162 37d01497c935
child 11169 60cbac6bc442
(svn r13721) -Codechange: one less multiplication for colour mixing in 32bpp blitters (GeekToo)
src/blitter/32bpp_base.hpp
--- a/src/blitter/32bpp_base.hpp	Thu Jul 17 21:15:57 2008 +0000
+++ b/src/blitter/32bpp_base.hpp	Thu Jul 17 23:43:47 2008 +0000
@@ -54,9 +54,9 @@
 
 		/* The 256 is wrong, it should be 255, but 256 is much faster... */
 		return ComposeColour(0xFF,
-							(r * a + cr * (256 - a)) / 256,
-							(g * a + cg * (256 - a)) / 256,
-							(b * a + cb * (256 - a)) / 256);
+							((int)(r - cr) * a) / 256 + cr,
+							((int)(g - cg) * a) / 256 + cg,
+							((int)(b - cb) * a) / 256 + cb);
 	}
 
 	/**
@@ -79,15 +79,8 @@
 		uint r  = GB(colour,  16, 8);
 		uint g  = GB(colour,  8,  8);
 		uint b  = GB(colour,  0,  8);
-		uint cr = GB(current, 16, 8);
-		uint cg = GB(current, 8,  8);
-		uint cb = GB(current, 0,  8);
 
-		/* The 256 is wrong, it should be 255, but 256 is much faster... */
-		return ComposeColour(0xFF,
-							(r * a + cr * (256 - a)) / 256,
-							(g * a + cg * (256 - a)) / 256,
-							(b * a + cb * (256 - a)) / 256);
+		return ComposeColourRGBANoCheck(r, g, b, a, current);
 	}
 
 	/**