Commit fd8746b4 authored by Michael Karcher's avatar Michael Karcher Committed by Alexandre Julliard

gdi32: Fix palette of 1bpp DIB in GetDIBits.

Windows always generates a black/white palette for 1 bit DIBs generated from DDBs. Copying from the current palette only takes place for color DDBs (not explicitly mentioned in MSDN), and only if depth equal (MSDN states it, explicitly).
parent 3f647088
......@@ -705,8 +705,10 @@ INT WINAPI GetDIBits(
for (i = 0; i < (1 << bpp); i++)
((WORD *)colorPtr)[i] = (WORD)i;
}
else if(bpp >= bmp->bitmap.bmBitsPixel) {
/* Generate the color map from the selected palette */
else if(bpp > 1 && bpp == bmp->bitmap.bmBitsPixel) {
/* For color DDBs in native depth (mono DDBs always have
a black/white palette):
Generate the color map from the selected palette */
PALETTEENTRY palEntry[256];
memset( palEntry, 0, sizeof(palEntry) );
......
......@@ -1499,7 +1499,6 @@ static void test_GetDIBits(void)
"expected bmiColors[0] 0,0,0,0 - got %x %x %x %x\n",
bi->bmiColors[0].rgbRed, bi->bmiColors[0].rgbGreen,
bi->bmiColors[0].rgbBlue, bi->bmiColors[0].rgbReserved);
todo_wine
ok(bi->bmiColors[1].rgbRed == 0xff && bi->bmiColors[1].rgbGreen == 0xff &&
bi->bmiColors[1].rgbBlue == 0xff && bi->bmiColors[1].rgbReserved == 0,
"expected bmiColors[0] 0xff,0xff,0xff,0 - got %x %x %x %x\n",
......
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