Jiajin Cui : gdiplus: Make gdi_alpha_blend fallback to StretchBlt if current Compositing Mode is SourceCopy.
Alexandre Julliard
julliard at winehq.org
Fri Sep 4 15:47:33 CDT 2020
Module: wine
Branch: master
Commit: 5754bd9c0ae4c74f94b02f242056820a3f483db3
URL: https://source.winehq.org/git/wine.git/?a=commit;h=5754bd9c0ae4c74f94b02f242056820a3f483db3
Author: Jiajin Cui <cuijiajin at uniontech.com>
Date: Thu Sep 3 17:17:43 2020 +0800
gdiplus: Make gdi_alpha_blend fallback to StretchBlt if current Compositing Mode is SourceCopy.
Signed-off-by: Jiajin Cui <cuijiajin at uniontech.com>
Signed-off-by: Esme Povirk <esme at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdiplus/graphics.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 5db8973c7b..868aea5642 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -331,8 +331,14 @@ static void round_points(POINT *pti, GpPointF *ptf, INT count)
static void gdi_alpha_blend(GpGraphics *graphics, INT dst_x, INT dst_y, INT dst_width, INT dst_height,
HDC hdc, INT src_x, INT src_y, INT src_width, INT src_height)
{
- if (GetDeviceCaps(graphics->hdc, TECHNOLOGY) == DT_RASPRINTER &&
- GetDeviceCaps(graphics->hdc, SHADEBLENDCAPS) == SB_NONE)
+ CompositingMode comp_mode;
+ INT technology = GetDeviceCaps(graphics->hdc, TECHNOLOGY);
+ INT shadeblendcaps = GetDeviceCaps(graphics->hdc, SHADEBLENDCAPS);
+
+ GdipGetCompositingMode(graphics, &comp_mode);
+
+ if ((technology == DT_RASPRINTER && shadeblendcaps == SB_NONE)
+ || comp_mode == CompositingModeSourceCopy)
{
TRACE("alpha blending not supported by device, fallback to StretchBlt\n");
More information about the wine-cvs
mailing list