gdiplus: Make gdi_alpha_blend fallback to StretchBlt if current Compositing Mode is SourceCopy.
Signed-off-by: Jiajin Cui <cuijiajin@uniontech.com> Signed-off-by: Esme Povirk <esme@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
36ebdfc6b6
commit
5754bd9c0a
|
@ -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");
|
||||
|
||||
|
|
Loading…
Reference in New Issue