[Wine-patches] [eter-2.1] gdiplus: If a device doesn't support AlphaBlend don't convert image to PARGB. (eterbug #8941)
Dmitry Timoshkov
dtimoshkov на etersoft.ru
Вт Фев 26 06:26:23 MSK 2013
(cherry picked from commit 1896e5575ef63919fefbe3bfc587f41be086b211)
---
dlls/gdiplus/graphics.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 01e127c..853027c 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -398,8 +398,11 @@ 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);
- convert_32bppARGB_to_32bppPARGB(src_width, src_height, temp_bits,
- 4 * src_width, src, src_stride);
+ if (GetDeviceCaps(graphics->hdc, SHADEBLENDCAPS) == SB_NONE)
+ 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);
SelectObject(hdc, hbitmap);
gdi_alpha_blend(graphics, dst_x, dst_y, src_width, src_height,
--
1.8.1.3
Подробная информация о списке рассылки Wine-patches