Patch by Evgeniy Boltik:

Always calculate a palette for the DIB in NtGdiGetDIBitsInternal, when dealing with 15 or 16 bit depth. Fixes broken taskbar icons on 16bpp.

svn path=/trunk/; revision=40276
This commit is contained in:
Timo Kreuzer 2009-03-29 00:25:47 +00:00
parent 060ac4d373
commit 77b12d6d18

View file

@ -659,8 +659,10 @@ NtGdiGetDIBitsInternal(HDC hDC,
ColorPtr = ((PBYTE)Info + Info->bmiHeader.biSize);
rgbQuads = (RGBQUAD *)ColorPtr;
/* Copy palette information */
if (Info->bmiHeader.biBitCount == BitsPerFormat(psurf->SurfObj.iBitmapFormat))
/* Copy palette information
* Always create a palette for 15 & 16 bit. */
if (Info->bmiHeader.biBitCount == BitsPerFormat(psurf->SurfObj.iBitmapFormat) &&
Info->bmiHeader.biBitCount != 15 && Info->bmiHeader.biBitCount != 16)
{
hDestPalette = hSourcePalette;
bPaletteMatch = TRUE;