user32: Select more appropriate stretch mode for colored images interpolation.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46375 Signed-off-by: Paul Gofman <gofmanp@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
cbf1207b88
commit
bfe1ea26dd
|
@ -2976,6 +2976,8 @@ static HBITMAP BITMAP_Load( HINSTANCE instance, LPCWSTR name,
|
|||
}
|
||||
|
||||
orig_bm = SelectObject(screen_mem_dc, hbitmap);
|
||||
if (info->bmiHeader.biBitCount > 1)
|
||||
SetStretchBltMode(screen_mem_dc, HALFTONE);
|
||||
StretchDIBits(screen_mem_dc, 0, 0, new_width, new_height, 0, 0, width, height, bits, fix_info, DIB_RGB_COLORS, SRCCOPY);
|
||||
SelectObject(screen_mem_dc, orig_bm);
|
||||
|
||||
|
@ -3217,6 +3219,8 @@ HANDLE WINAPI CopyImage( HANDLE hnd, UINT type, INT desiredx,
|
|||
void * bits;
|
||||
|
||||
dc = CreateCompatibleDC(NULL);
|
||||
if (ds.dsBm.bmBitsPixel > 1)
|
||||
SetStretchBltMode(dc, HALFTONE);
|
||||
|
||||
bi->bmiHeader.biWidth = ds.dsBm.bmWidth;
|
||||
bi->bmiHeader.biHeight = ds.dsBm.bmHeight;
|
||||
|
|
|
@ -2918,9 +2918,9 @@ static void test_Image_StretchMode(void)
|
|||
sizeof(colors_bits_1), FALSE},
|
||||
{4, 4, 2, 2, 8, test_bits_8, expected_bits_8,
|
||||
sizeof(test_bits_8), sizeof(expected_bits_8), colors_bits_8,
|
||||
sizeof(colors_bits_8), TRUE},
|
||||
sizeof(colors_bits_8), FALSE},
|
||||
{4, 4, 2, 2, 16, (const unsigned char *)test_bits_16, (const unsigned char *)expected_bits_16,
|
||||
sizeof(test_bits_16), sizeof(expected_bits_16), NULL, 0, TRUE},
|
||||
sizeof(test_bits_16), sizeof(expected_bits_16), NULL, 0, FALSE},
|
||||
};
|
||||
static const char filename[] = "test.bmp";
|
||||
BITMAPINFO *bmi, *bmi_output;
|
||||
|
|
Loading…
Reference in New Issue