From 37f33b89cb6845d63dc04bf29ca1a3f9147c5293 Mon Sep 17 00:00:00 2001 From: Jeffrey Morlan Date: Thu, 26 Jun 2008 22:22:57 +0000 Subject: [PATCH] Fix messed-up colors in taskbar icons in qemu 16bpp mode. BuildDIBPalette was previously assuming all 16bpp DIBs were 565. svn path=/trunk/; revision=34117 --- reactos/subsystems/win32/win32k/objects/dibobj.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/reactos/subsystems/win32/win32k/objects/dibobj.c b/reactos/subsystems/win32/win32k/objects/dibobj.c index 4fbdd612c74..a5b1607d5d2 100644 --- a/reactos/subsystems/win32/win32k/objects/dibobj.c +++ b/reactos/subsystems/win32/win32k/objects/dibobj.c @@ -1354,11 +1354,18 @@ BuildDIBPalette (CONST BITMAPINFO *bmi, PINT paletteType) *paletteType = PAL_INDEXED; RedMask = GreenMask = BlueMask = 0; } + else if(bmi->bmiHeader.biCompression == BI_BITFIELDS) + { + *paletteType = PAL_BITFIELDS; + RedMask = ((ULONG *)bmi->bmiColors)[0]; + GreenMask = ((ULONG *)bmi->bmiColors)[1]; + BlueMask = ((ULONG *)bmi->bmiColors)[2]; + } else if(bits < 24) { *paletteType = PAL_BITFIELDS; - RedMask = 0xf800; - GreenMask = 0x07e0; + RedMask = 0x7c00; + GreenMask = 0x03e0; BlueMask = 0x001f; } else