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