gdiplus: Fix blend_colors when alpha channel differs.
commit9c579023f0750539bdf7815f8545c4620540387a
authorVincent Povirk <vincent@codeweavers.com>
Tue, 24 Mar 2015 17:50:18 +0000 (24 12:50 -0500)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 25 Mar 2015 10:46:38 +0000 (25 19:46 +0900)
treec046712e8228e5058ae284aa32c8425a5ac6ec8f
parente95dbb3b747dcd92b614578b3ca4b1c2dbfdaece
gdiplus: Fix blend_colors when alpha channel differs.

When picking a color halfway between 100% white (0xffffffff) and fully
transparent (0x00000000), the result was 50% opaque 50% grey
(0x80808080) when it should really be 50% opaque white (0x80ffffff).
This had a tendency to create grey fringes on things. The fix is to
weight the non-alpha components based on how much they contribute to
the final alpha value.
dlls/gdiplus/graphics.c