From a739fc4d06c71b7b8ffdf29d37e03305baabdb51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9=20van=20Geldorp?= Date: Wed, 16 Nov 2005 16:05:55 +0000 Subject: [PATCH] Pass correct masks when creating bitfield palette svn path=/trunk/; revision=19267 --- reactos/subsys/win32k/objects/dib.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/reactos/subsys/win32k/objects/dib.c b/reactos/subsys/win32k/objects/dib.c index 3ea2080a02c..5bdaae4cd60 100644 --- a/reactos/subsys/win32k/objects/dib.c +++ b/reactos/subsys/win32k/objects/dib.c @@ -1149,6 +1149,7 @@ BuildDIBPalette (CONST BITMAPINFO *bmi, PINT paletteType) ULONG ColorCount; PALETTEENTRY *palEntries = NULL; HPALETTE hPal; + ULONG RedMask, GreenMask, BlueMask; // Determine Bits Per Pixel bits = bmi->bmiHeader.biBitCount; @@ -1161,10 +1162,16 @@ BuildDIBPalette (CONST BITMAPINFO *bmi, PINT paletteType) 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 @@ BuildDIBPalette (CONST BITMAPINFO *bmi, PINT paletteType) } else { - hPal = PALETTE_AllocPalette( *paletteType, ColorCount, (ULONG*)palEntries, 0, 0, 0 ); + hPal = PALETTE_AllocPalette(*paletteType, ColorCount, + (ULONG*) palEntries, + RedMask, GreenMask, BlueMask ); } return hPal;