Vincent Povirk : gdiplus: Fix the non-trivial case in color_over.

Alexandre Julliard julliard at winehq.org
Mon Apr 19 11:51:14 CDT 2010


Module: wine
Branch: master
Commit: 6b53cb27bc51b53c2ce10e7e177c7b74bfd3264a
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6b53cb27bc51b53c2ce10e7e177c7b74bfd3264a

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Sat Apr 17 11:31:15 2010 -0500

gdiplus: Fix the non-trivial case in color_over.

---

 dlls/gdiplus/gdiplus_private.h |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h
index 5ff7125..2313cd5 100644
--- a/dlls/gdiplus/gdiplus_private.h
+++ b/dlls/gdiplus/gdiplus_private.h
@@ -94,9 +94,9 @@ static inline ARGB color_over(ARGB bg, ARGB fg)
     if (bg_alpha == 0) return fg;
 
     a = bg_alpha + fg_alpha;
-    b = ((bg&0xff)*bg_alpha + (fg&0xff)*fg_alpha)*0xff/a;
-    g = (((bg>>8)&0xff)*bg_alpha + ((fg>>8)&0xff)*fg_alpha)*0xff/a;
-    r = (((bg>>16)&0xff)*bg_alpha + ((fg>>16)&0xff)*fg_alpha)*0xff/a;
+    b = ((bg&0xff)*bg_alpha + (fg&0xff)*fg_alpha)/a;
+    g = (((bg>>8)&0xff)*bg_alpha + ((fg>>8)&0xff)*fg_alpha)/a;
+    r = (((bg>>16)&0xff)*bg_alpha + ((fg>>16)&0xff)*fg_alpha)/a;
 
     return (a<<24)|(r<<16)|(g<<8)|b;
 }




More information about the wine-cvs mailing list