Author: tkreuzer Date: Sat Jul 4 02:47:33 2009 New Revision: 41759
URL: http://svn.reactos.org/svn/reactos?rev=41759&view=rev Log: [FORMATTING] palobj.c: Fix indentation, no code change.
Modified: trunk/reactos/subsystems/win32/win32k/objects/palobj.c
Modified: trunk/reactos/subsystems/win32/win32k/objects/palobj.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/obj... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/palobj.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/objects/palobj.c [iso-8859-1] Sat Jul 4 02:47:33 2009 @@ -34,21 +34,21 @@ int COLOR_gapFilled; int COLOR_max;
-PPALETTEENTRY FASTCALL ReturnSystemPalette (VOID) -{ - return COLOR_sysPal; +PPALETTEENTRY FASTCALL ReturnSystemPalette(VOID) +{ + return COLOR_sysPal; }
BOOL INTERNAL_CALL PALETTE_Cleanup(PVOID ObjectBody) { - PPALETTE pPal = (PPALETTE)ObjectBody; - if (NULL != pPal->IndexedColors) - { - ExFreePool(pPal->IndexedColors); - } - - return TRUE; + PPALETTE pPal = (PPALETTE)ObjectBody; + if (NULL != pPal->IndexedColors) + { + ExFreePool(pPal->IndexedColors); + } + + return TRUE; }
HPALETTE @@ -60,46 +60,48 @@ ULONG Green, ULONG Blue) { - HPALETTE NewPalette; - PPALETTE PalGDI; - - PalGDI = (PPALETTE)GDIOBJ_AllocObjWithHandle(GDI_OBJECT_TYPE_PALETTE); - if (!PalGDI) - { - return NULL; - } - - NewPalette = PalGDI->BaseObject.hHmgr; - - PalGDI->Self = NewPalette; - PalGDI->Mode = Mode; - - if (NULL != Colors) - { - PalGDI->IndexedColors = ExAllocatePoolWithTag(PagedPool, sizeof(PALETTEENTRY) * NumColors, TAG_PALETTE); - if (NULL == PalGDI->IndexedColors) - { - PALETTE_UnlockPalette(PalGDI); - PALETTE_FreePaletteByHandle(NewPalette); - return NULL; - } - RtlCopyMemory(PalGDI->IndexedColors, Colors, sizeof(PALETTEENTRY) * NumColors); - } - - if (PAL_INDEXED == Mode) - { - PalGDI->NumColors = NumColors; - } - else if (PAL_BITFIELDS == Mode) - { - PalGDI->RedMask = Red; - PalGDI->GreenMask = Green; - PalGDI->BlueMask = Blue; - } - - PALETTE_UnlockPalette(PalGDI); - - return NewPalette; + HPALETTE NewPalette; + PPALETTE PalGDI; + + PalGDI = (PPALETTE)GDIOBJ_AllocObjWithHandle(GDI_OBJECT_TYPE_PALETTE); + if (!PalGDI) + { + return NULL; + } + + NewPalette = PalGDI->BaseObject.hHmgr; + + PalGDI->Self = NewPalette; + PalGDI->Mode = Mode; + + if (NULL != Colors) + { + PalGDI->IndexedColors = ExAllocatePoolWithTag(PagedPool, + sizeof(PALETTEENTRY) * NumColors, + TAG_PALETTE); + if (NULL == PalGDI->IndexedColors) + { + PALETTE_UnlockPalette(PalGDI); + PALETTE_FreePaletteByHandle(NewPalette); + return NULL; + } + RtlCopyMemory(PalGDI->IndexedColors, Colors, sizeof(PALETTEENTRY) * NumColors); + } + + if (PAL_INDEXED == Mode) + { + PalGDI->NumColors = NumColors; + } + else if (PAL_BITFIELDS == Mode) + { + PalGDI->RedMask = Red; + PalGDI->GreenMask = Green; + PalGDI->BlueMask = Blue; + } + + PALETTE_UnlockPalette(PalGDI); + + return NewPalette; }
HPALETTE @@ -107,116 +109,122 @@ PALETTE_AllocPaletteIndexedRGB(ULONG NumColors, CONST RGBQUAD *Colors) { - HPALETTE NewPalette; - PPALETTE PalGDI; - UINT i; - - PalGDI = (PPALETTE)GDIOBJ_AllocObjWithHandle(GDI_OBJECT_TYPE_PALETTE); - if (!PalGDI) - { - return NULL; - } - - NewPalette = PalGDI->BaseObject.hHmgr; - - PalGDI->Self = NewPalette; - PalGDI->Mode = PAL_INDEXED; - - PalGDI->IndexedColors = ExAllocatePoolWithTag(PagedPool, sizeof(PALETTEENTRY) * NumColors, TAG_PALETTE); - if (NULL == PalGDI->IndexedColors) - { - PALETTE_UnlockPalette(PalGDI); - PALETTE_FreePaletteByHandle(NewPalette); - return NULL; - } - for (i = 0; i < NumColors; i++) - { - PalGDI->IndexedColors[i].peRed = Colors[i].rgbRed; - PalGDI->IndexedColors[i].peGreen = Colors[i].rgbGreen; - PalGDI->IndexedColors[i].peBlue = Colors[i].rgbBlue; - PalGDI->IndexedColors[i].peFlags = 0; - } - - PalGDI->NumColors = NumColors; - - PALETTE_UnlockPalette(PalGDI); - - return NewPalette; + HPALETTE NewPalette; + PPALETTE PalGDI; + UINT i; + + PalGDI = (PPALETTE)GDIOBJ_AllocObjWithHandle(GDI_OBJECT_TYPE_PALETTE); + if (!PalGDI) + { + return NULL; + } + + NewPalette = PalGDI->BaseObject.hHmgr; + + PalGDI->Self = NewPalette; + PalGDI->Mode = PAL_INDEXED; + + PalGDI->IndexedColors = ExAllocatePoolWithTag(PagedPool, + sizeof(PALETTEENTRY) * NumColors, + TAG_PALETTE); + if (NULL == PalGDI->IndexedColors) + { + PALETTE_UnlockPalette(PalGDI); + PALETTE_FreePaletteByHandle(NewPalette); + return NULL; + } + + for (i = 0; i < NumColors; i++) + { + PalGDI->IndexedColors[i].peRed = Colors[i].rgbRed; + PalGDI->IndexedColors[i].peGreen = Colors[i].rgbGreen; + PalGDI->IndexedColors[i].peBlue = Colors[i].rgbBlue; + PalGDI->IndexedColors[i].peFlags = 0; + } + + PalGDI->NumColors = NumColors; + + PALETTE_UnlockPalette(PalGDI); + + return NewPalette; }
// Create the system palette HPALETTE FASTCALL PALETTE_Init(VOID) { - int i; - HPALETTE hpalette; - PLOGPALETTE palPtr; -#ifndef NO_MAPPING - PALOBJ *palObj; -#endif - const PALETTEENTRY* __sysPalTemplate = (const PALETTEENTRY*)COLOR_GetSystemPaletteTemplate(); - - // create default palette (20 system colors) - palPtr = ExAllocatePoolWithTag(PagedPool, sizeof(LOGPALETTE) + (NB_RESERVED_COLORS * sizeof(PALETTEENTRY)), TAG_PALETTE); - if (!palPtr) return FALSE; - - palPtr->palVersion = 0x300; - palPtr->palNumEntries = NB_RESERVED_COLORS; - for(i=0; i<NB_RESERVED_COLORS; i++) - { - palPtr->palPalEntry[i].peRed = __sysPalTemplate[i].peRed; - palPtr->palPalEntry[i].peGreen = __sysPalTemplate[i].peGreen; - palPtr->palPalEntry[i].peBlue = __sysPalTemplate[i].peBlue; - palPtr->palPalEntry[i].peFlags = 0; - } - - hpalette = NtGdiCreatePaletteInternal(palPtr,NB_RESERVED_COLORS); - ExFreePoolWithTag(palPtr, TAG_PALETTE); - -#ifndef NO_MAPPING - palObj = (PALOBJ*)PALETTE_LockPalette(hpalette); - if (palObj) - { - if (!(palObj->mapping = ExAllocatePool(PagedPool, sizeof(int) * 20))) - { - DbgPrint("Win32k: Can not create palette mapping -- out of memory!"); - return FALSE; - } - PALETTE_UnlockPalette(palObj); - } -#endif - -/* palette_size = visual->map_entries; */ - - return hpalette; + int i; + HPALETTE hpalette; + PLOGPALETTE palPtr; +#ifndef NO_MAPPING + PALOBJ *palObj; +#endif + const PALETTEENTRY* __sysPalTemplate = (const PALETTEENTRY*)COLOR_GetSystemPaletteTemplate(); + + // create default palette (20 system colors) + palPtr = ExAllocatePoolWithTag(PagedPool, + sizeof(LOGPALETTE) + + (NB_RESERVED_COLORS * sizeof(PALETTEENTRY)), + TAG_PALETTE); + if (!palPtr) return FALSE; + + palPtr->palVersion = 0x300; + palPtr->palNumEntries = NB_RESERVED_COLORS; + for (i=0; i<NB_RESERVED_COLORS; i++) + { + palPtr->palPalEntry[i].peRed = __sysPalTemplate[i].peRed; + palPtr->palPalEntry[i].peGreen = __sysPalTemplate[i].peGreen; + palPtr->palPalEntry[i].peBlue = __sysPalTemplate[i].peBlue; + palPtr->palPalEntry[i].peFlags = 0; + } + + hpalette = NtGdiCreatePaletteInternal(palPtr,NB_RESERVED_COLORS); + ExFreePoolWithTag(palPtr, TAG_PALETTE); + +#ifndef NO_MAPPING + palObj = (PALOBJ*)PALETTE_LockPalette(hpalette); + if (palObj) + { + if (!(palObj->mapping = ExAllocatePool(PagedPool, sizeof(int) * 20))) + { + DbgPrint("Win32k: Can not create palette mapping -- out of memory!"); + return FALSE; + } + PALETTE_UnlockPalette(palObj); + } +#endif + + /* palette_size = visual->map_entries; */ + + return hpalette; }
#ifndef NO_MAPPING static void FASTCALL PALETTE_FormatSystemPalette(void) { - // Build free list so we'd have an easy way to find - // out if there are any available colorcells. - - int i, j = PALETTE_firstFree = NB_RESERVED_COLORS/2; - - COLOR_sysPal[j].peFlags = 0; - for(i = (NB_RESERVED_COLORS>>1) + 1 ; i < 256 - (NB_RESERVED_COLORS>>1) ; i++) - { - if( i < COLOR_gapStart || i > COLOR_gapEnd ) - { - COLOR_sysPal[i].peFlags = 0; // unused tag - PALETTE_freeList[j] = i; // next - j = i; - } - } - PALETTE_freeList[j] = 0; + // Build free list so we'd have an easy way to find + // out if there are any available colorcells. + + int i, j = PALETTE_firstFree = NB_RESERVED_COLORS/2; + + COLOR_sysPal[j].peFlags = 0; + for (i = (NB_RESERVED_COLORS>>1) + 1 ; i < 256 - (NB_RESERVED_COLORS>>1) ; i++) + { + if (i < COLOR_gapStart || i > COLOR_gapEnd) + { + COLOR_sysPal[i].peFlags = 0; // unused tag + PALETTE_freeList[j] = i; // next + j = i; + } + } + PALETTE_freeList[j] = 0; } #endif
VOID FASTCALL PALETTE_ValidateFlags(PALETTEENTRY* lpPalE, INT size) { - int i = 0; - for( ; i<size ; i++ ) - lpPalE[i].peFlags = PC_SYS_USED | (lpPalE[i].peFlags & 0x07); + int i = 0; + for (; i<size ; i++) + lpPalE[i].peFlags = PC_SYS_USED | (lpPalE[i].peFlags & 0x07); }
#ifndef NO_MAPPING @@ -224,130 +232,131 @@ // Return number of entries which mapping has changed. INT APIENTRY PALETTE_SetMapping(PALOBJ *palPtr, UINT uStart, UINT uNum, BOOL mapOnly) { - char flag; - int prevMapping = (palPtr->mapping) ? 1 : 0; - int index, iRemapped = 0; - int *mapping; - HPALETTE hSysPal = NtGdiGetStockObject(DEFAULT_PALETTE); - PPALETTE pSysPal = PALETTE_LockPalette(hSysPal); - PPALETTE palGDI = CONTAINING_RECORD(palPtr,PALETTE,PalObj); - /* FIXME - handle pSysPal == NULL!!!!!!! */ - - COLOR_sysPal = pSysPal->IndexedColors; - PALETTE_UnlockPalette(pSysPal); // FIXME: Is this a right way to obtain pointer to the system palette? - - - // reset dynamic system palette entries - - if( !mapOnly && PALETTE_firstFree != -1) PALETTE_FormatSystemPalette(); - - // initialize palette mapping table - - //mapping = HeapReAlloc( GetProcessHeap(), 0, palPtr->mapping, - // sizeof(int)*palPtr->logpalette->palNumEntries); - ExFreePool(palPtr->mapping); - mapping = ExAllocatePoolWithTag(PagedPool, sizeof(int)*palGDI->NumColors, TAG_PALETTEMAP); - - if (!mapping) - { - DPRINT1("Failed allocating memory for palette mapping!\n"); - return 0; - } - - palPtr->mapping = mapping; - - for(uNum += uStart; uStart < uNum; uStart++) - { - index = -1; - flag = PC_SYS_USED; - - switch( palGDI->IndexedColors[uStart].peFlags & 0x07 ) - { - case PC_EXPLICIT: // palette entries are indices into system palette - // The PC_EXPLICIT flag is used to copy an entry from the system palette into the logical palette - index = *(WORD*)(palGDI->IndexedColors + uStart); - if(index > 255 || (index >= COLOR_gapStart && index <= COLOR_gapEnd)) + char flag; + int prevMapping = (palPtr->mapping) ? 1 : 0; + int index, iRemapped = 0; + int *mapping; + HPALETTE hSysPal = NtGdiGetStockObject(DEFAULT_PALETTE); + PPALETTE pSysPal = PALETTE_LockPalette(hSysPal); + PPALETTE palGDI = CONTAINING_RECORD(palPtr,PALETTE,PalObj); + /* FIXME - handle pSysPal == NULL!!!!!!! */ + + COLOR_sysPal = pSysPal->IndexedColors; + PALETTE_UnlockPalette(pSysPal); // FIXME: Is this a right way to obtain pointer to the system palette? + + + // reset dynamic system palette entries + + if (!mapOnly && PALETTE_firstFree != -1) PALETTE_FormatSystemPalette(); + + // initialize palette mapping table + + //mapping = HeapReAlloc( GetProcessHeap(), 0, palPtr->mapping, + // sizeof(int)*palPtr->logpalette->palNumEntries); + ExFreePool(palPtr->mapping); + mapping = ExAllocatePoolWithTag(PagedPool, sizeof(int)*palGDI->NumColors, TAG_PALETTEMAP); + + if (!mapping) + { + DPRINT1("Failed allocating memory for palette mapping!\n"); + return 0; + } + + palPtr->mapping = mapping; + + for (uNum += uStart; uStart < uNum; uStart++) + { + index = -1; + flag = PC_SYS_USED; + + switch (palGDI->IndexedColors[uStart].peFlags & 0x07) { - DbgPrint("Win32k: PC_EXPLICIT: idx %d out of system palette, assuming black.\n", index); - index = 0; + case PC_EXPLICIT: // palette entries are indices into system palette + // The PC_EXPLICIT flag is used to copy an entry from the system palette into the logical palette + index = *(WORD*)(palGDI->IndexedColors + uStart); + if (index > 255 || (index >= COLOR_gapStart && index <= COLOR_gapEnd)) + { + DbgPrint("Win32k: PC_EXPLICIT: idx %d out of system palette, assuming black.\n", index); + index = 0; + } + break; + + case PC_RESERVED: // forbid future mappings to this entry + // For palette animation, the entries in the logical palette need the PC_RESERVED flag + flag |= PC_SYS_RESERVED; + + // fall through + default: // try to collapse identical colors + index = COLOR_PaletteLookupExactIndex(COLOR_sysPal, 256, + *(COLORREF*)(palGDI->IndexedColors + uStart)); + // fall through + + case PC_NOCOLLAPSE: + // If an entry in the logical palette is marked with the PC_NOCOLLAPSE flag, the palette + // manager allocates a free entry in the system palette if one is available and only uses the + // closest colour match if there are no (more) free entries in the system palette + + DbgPrint("Win32k: WARNING: PC_NOCOLLAPSE is not yet working properly\n"); + + if (index < 0) + { + if (PALETTE_firstFree > 0 /* && !(PALETTE_PaletteFlags & PALETTE_FIXED) FIXME */) + { + DbgPrint("Win32k: Unimplemented Palette Operation: PC_NOCOLLAPSE [objects/palette.c]\n"); + /* XColor color; + index = PALETTE_firstFree; // ought to be available + PALETTE_firstFree = PALETTE_freeList[index]; + + color.pixel = (PALETTE_PaletteToXPixel) ? PALETTE_PaletteToXPixel[index] : index; + color.red = palPtr->logpalette->palPalEntry[uStart].peRed << 8; + color.green = palPtr->logpalette->palPalEntry[uStart].peGreen << 8; + color.blue = palPtr->logpalette->palPalEntry[uStart].peBlue << 8; + color.flags = DoRed | DoGreen | DoBlue; + TSXStoreColor(display, PALETTE_PaletteXColormap, &color); + + COLOR_sysPal[index] = palPtr->logpalette->palPalEntry[uStart]; + COLOR_sysPal[index].peFlags = flag; + PALETTE_freeList[index] = 0; + + if(PALETTE_PaletteToXPixel) index = PALETTE_PaletteToXPixel[index]; */ + break; + } + /* else if (PALETTE_PaletteFlags & PALETTE_VIRTUAL) + { + index = PALETTE_ToPhysical(NULL, 0x00ffffff & + *(COLORREF*)(palPtr->logpalette->palPalEntry + uStart)); + break; + } FIXME */ + + // we have to map to existing entry in the system palette + + index = COLOR_PaletteLookupPixel(COLOR_sysPal, 256, NULL, + *(COLORREF*)(palGDI->IndexedColors + uStart), TRUE); + } + palGDI->IndexedColors[uStart].peFlags |= PC_SYS_USED; + + /* if(PALETTE_PaletteToXPixel) index = PALETTE_PaletteToXPixel[index]; FIXME */ + break; } - break; - - case PC_RESERVED: // forbid future mappings to this entry - // For palette animation, the entries in the logical palette need the PC_RESERVED flag - flag |= PC_SYS_RESERVED; - - // fall through - default: // try to collapse identical colors - index = COLOR_PaletteLookupExactIndex(COLOR_sysPal, 256, - *(COLORREF*)(palGDI->IndexedColors + uStart)); - // fall through - - case PC_NOCOLLAPSE: - // If an entry in the logical palette is marked with the PC_NOCOLLAPSE flag, the palette - // manager allocates a free entry in the system palette if one is available and only uses the - // closest colour match if there are no (more) free entries in the system palette - - DbgPrint("Win32k: WARNING: PC_NOCOLLAPSE is not yet working properly\n"); - - if( index < 0 ) - { - if(PALETTE_firstFree > 0 /* && !(PALETTE_PaletteFlags & PALETTE_FIXED) FIXME */ ) - { - DbgPrint("Win32k: Unimplemented Palette Operation: PC_NOCOLLAPSE [objects/palette.c]\n"); -/* XColor color; - index = PALETTE_firstFree; // ought to be available - PALETTE_firstFree = PALETTE_freeList[index]; - - color.pixel = (PALETTE_PaletteToXPixel) ? PALETTE_PaletteToXPixel[index] : index; - color.red = palPtr->logpalette->palPalEntry[uStart].peRed << 8; - color.green = palPtr->logpalette->palPalEntry[uStart].peGreen << 8; - color.blue = palPtr->logpalette->palPalEntry[uStart].peBlue << 8; - color.flags = DoRed | DoGreen | DoBlue; - TSXStoreColor(display, PALETTE_PaletteXColormap, &color); - - COLOR_sysPal[index] = palPtr->logpalette->palPalEntry[uStart]; - COLOR_sysPal[index].peFlags = flag; - PALETTE_freeList[index] = 0; - - if(PALETTE_PaletteToXPixel) index = PALETTE_PaletteToXPixel[index]; */ - break; - } -/* else if (PALETTE_PaletteFlags & PALETTE_VIRTUAL) - { - index = PALETTE_ToPhysical(NULL, 0x00ffffff & - *(COLORREF*)(palPtr->logpalette->palPalEntry + uStart)); - break; - } FIXME */ - - // we have to map to existing entry in the system palette - - index = COLOR_PaletteLookupPixel(COLOR_sysPal, 256, NULL, - *(COLORREF*)(palGDI->IndexedColors + uStart), TRUE); - } - palGDI->IndexedColors[uStart].peFlags |= PC_SYS_USED; - -/* if(PALETTE_PaletteToXPixel) index = PALETTE_PaletteToXPixel[index]; FIXME */ - break; - } - - if( !prevMapping || palPtr->mapping[uStart] != index ) iRemapped++; + + if (!prevMapping || palPtr->mapping[uStart] != index) iRemapped++; palPtr->mapping[uStart] = index; - } - return iRemapped; + } + return iRemapped; } #endif
INT FASTCALL PALETTE_GetObject(PPALETTE pGdiObject, INT cbCount, LPLOGBRUSH lpBuffer) { - if (!lpBuffer) - { + if (!lpBuffer) + { + return sizeof(WORD); + } + + if ((UINT)cbCount < sizeof(WORD)) return 0; + *((WORD*)lpBuffer) = (WORD)pGdiObject->NumColors; return sizeof(WORD); - } - if ((UINT)cbCount < sizeof(WORD)) return 0; - *((WORD*)lpBuffer) = (WORD)pGdiObject->NumColors; - return sizeof(WORD); }
/* EOF */