mirror of
https://github.com/reactos/reactos.git
synced 2026-05-31 08:17:09 +08:00
[WIN32K:NTGDI] Handle RGB/BGR directly in PALETTE_ulGetNearestIndex
This commit is contained in:
@@ -511,7 +511,7 @@ EXLATEOBJ_vInitialize(
|
||||
ulColor = RGB(ppalSrc->IndexedColors[i].peRed,
|
||||
ppalSrc->IndexedColors[i].peGreen,
|
||||
ppalSrc->IndexedColors[i].peBlue);
|
||||
pexlo->xlo.pulXlate[i] = PALETTE_ulGetNearestBitFieldsIndex(ppalDst, ulColor);
|
||||
pexlo->xlo.pulXlate[i] = PALETTE_ulGetNearestIndex(ppalDst, ulColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -263,6 +263,7 @@ PALETTE_ulGetNearestPaletteIndex(PALETTE* ppal, ULONG iColor)
|
||||
ULONG ulDiff, ulColorDiff, ulMinimalDiff = 0xFFFFFF;
|
||||
ULONG i, ulBestIndex = 0;
|
||||
PALETTEENTRY peColor = *(PPALETTEENTRY)&iColor;
|
||||
ASSERT(ppal->flFlags & PAL_INDEXED);
|
||||
|
||||
/* Loop all palette entries */
|
||||
for (i = 0; i < ppal->NumColors; i++)
|
||||
@@ -294,6 +295,7 @@ NTAPI
|
||||
PALETTE_ulGetNearestBitFieldsIndex(PALETTE* ppal, ULONG ulColor)
|
||||
{
|
||||
ULONG ulNewColor;
|
||||
ASSERT(ppal->flFlags & PAL_BITFIELDS);
|
||||
|
||||
// FIXME: HACK, should be stored already
|
||||
ppal->ulRedShift = CalculateShift(RGB(0xff,0,0), ppal->RedMask);
|
||||
@@ -311,6 +313,10 @@ ULONG
|
||||
NTAPI
|
||||
PALETTE_ulGetNearestIndex(PALETTE* ppal, ULONG ulColor)
|
||||
{
|
||||
if (ppal->flFlags & PAL_RGB)
|
||||
return ulColor;
|
||||
if (ppal->flFlags & PAL_BGR)
|
||||
return RGB(GetBValue(ulColor), GetGValue(ulColor), GetRValue(ulColor));
|
||||
if (ppal->flFlags & PAL_INDEXED) // Use fl & PALINDEXED
|
||||
return PALETTE_ulGetNearestPaletteIndex(ppal, ulColor);
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user