gdiplus: Use StretchBlt instead of GdiAlphaBlend if device doesn't support alpha blending.

Vincent Povirk madewokherd at gmail.com
Tue Mar 13 11:26:05 CDT 2012


You can't rely on the area we're drawing to be rectangular. We use
AlphaBlend to draw rotated images, any text that isn't a solid color,
and any brushes other than solid or hatch brushes. Anything we can't
do accurately with gdi32 will use AlphaBlend, and the number of cases
will only increase.

Can't we fix wineps?

Can we read the bits back from wineps and write new bits with the image applied?

If neither of those things are possible, the best we can do is to do
ALL of our drawing through alpha_blend_pixels (by using a GpGraphics
without an hdc), compose the result internally, and blit the result
with a mask based on the resulting alpha values when GdipFlush or
GdipDeleteGraphics is called. But until we have a line/curve drawing
implementation using alpha_blend_pixels, that would cause those
operations to fail.



More information about the wine-devel mailing list