[PATCH 0/1] MR9055: gdiplus: Handle PixelFormatPAlpha separately in alpha_blend_hdc_pixels().
From: Dmitry Timoshkov <dmitry(a)baikal.ru> Wine-Bug: http://bugs.winehq.org/show_bug.cgi?id=58730 Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru> --- dlls/gdiplus/graphics.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c index 2a053a80408..1c7e3bde09c 100644 --- a/dlls/gdiplus/graphics.c +++ b/dlls/gdiplus/graphics.c @@ -599,12 +599,13 @@ static GpStatus alpha_blend_hdc_pixels(GpGraphics *graphics, INT dst_x, INT dst_ if(!hbitmap || !temp_bits) goto done; - if ((graphics->hdc && + if (graphics->hdc && GetDeviceCaps(graphics->hdc, TECHNOLOGY) == DT_RASPRINTER && - GetDeviceCaps(graphics->hdc, SHADEBLENDCAPS) == SB_NONE) || - fmt & PixelFormatPAlpha) + GetDeviceCaps(graphics->hdc, SHADEBLENDCAPS) == SB_NONE) blend_32bppARGB(src_width, src_height, temp_bits, 4 * src_width, src, src_stride); + else if (fmt & PixelFormatPAlpha) + memcpy(temp_bits, src, src_width * src_height * 4); else convert_32bppARGB_to_32bppPARGB(src_width, src_height, temp_bits, 4 * src_width, src, src_stride); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9055
This merge request was approved by Esme Povirk. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9055
participants (3)
-
Dmitry Timoshkov -
Dmitry Timoshkov (@dmitry) -
Esme Povirk (@madewokherd)