gdiplus: Fix the non-trivial case in color_over.

This commit is contained in:
Vincent Povirk 2010-04-17 11:31:15 -05:00 committed by Alexandre Julliard
parent 62781a6b3c
commit 6b53cb27bc
1 changed files with 3 additions and 3 deletions

View File

@ -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;
}