Commit b8a8e1bd authored by Vincent Povirk's avatar Vincent Povirk Committed by Alexandre Julliard

gdiplus: Check SHADEBLENDCAPS only for printer devices.

parent e880c9ca
......@@ -324,7 +324,8 @@ static void transform_and_round_points(GpGraphics *graphics, POINT *pti,
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, SHADEBLENDCAPS) == SB_NONE)
if (GetDeviceCaps(graphics->hdc, TECHNOLOGY) == DT_RASPRINTER &&
GetDeviceCaps(graphics->hdc, SHADEBLENDCAPS) == SB_NONE)
{
TRACE("alpha blending not supported by device, fallback to StretchBlt\n");
......@@ -404,7 +405,8 @@ static GpStatus alpha_blend_hdc_pixels(GpGraphics *graphics, INT dst_x, INT dst_
hbitmap = CreateDIBSection(hdc, (BITMAPINFO*)&bih, DIB_RGB_COLORS,
(void**)&temp_bits, NULL, 0);
if (GetDeviceCaps(graphics->hdc, SHADEBLENDCAPS) == SB_NONE ||
if ((GetDeviceCaps(graphics->hdc, TECHNOLOGY) == DT_RASPRINTER &&
GetDeviceCaps(graphics->hdc, SHADEBLENDCAPS) == SB_NONE) ||
fmt & PixelFormatPAlpha)
memcpy(temp_bits, src, src_width * src_height * 4);
else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment