Pass correct masks when creating bitfield palette
Modified: trunk/reactos/subsys/win32k/objects/dib.c
_____
Modified: trunk/reactos/subsys/win32k/objects/dib.c
--- trunk/reactos/subsys/win32k/objects/dib.c 2005-11-16 15:53:16 UTC
(rev 19266)
+++ trunk/reactos/subsys/win32k/objects/dib.c 2005-11-16 16:05:55 UTC
(rev 19267)
@@ -1149,6 +1149,7 @@
ULONG ColorCount;
PALETTEENTRY *palEntries = NULL;
HPALETTE hPal;
+ ULONG RedMask, GreenMask, BlueMask;
// Determine Bits Per Pixel
bits = bmi->bmiHeader.biBitCount;
@@ -1161,10 +1162,16 @@
else if(bits < 24)
{
*paletteType = PAL_BITFIELDS;
+ RedMask = 0xf800;
+ GreenMask = 0x07e0;
+ BlueMask = 0x001f;
}
else
{
*paletteType = PAL_BGR;
+ RedMask = 0xff0000;
+ GreenMask = 0x00ff00;
+ BlueMask = 0x0000ff;
}
if (bmi->bmiHeader.biClrUsed == 0)
@@ -1182,7 +1189,9 @@
}
else
{
- hPal = PALETTE_AllocPalette( *paletteType, ColorCount,
(ULONG*)palEntries, 0, 0, 0 );
+ hPal = PALETTE_AllocPalette(*paletteType, ColorCount,
+ (ULONG*) palEntries,
+ RedMask, GreenMask, BlueMask );
}
return hPal;