MCPcopy Create free account
hub / github.com/DentonW/DevIL / ILAPIENTRY ilutSetHPal

Function ILAPIENTRY ilutSetHPal

DevIL/src-ILUT/src/ilut_win32.cpp:504–547  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

502
503
504ILboolean ILAPIENTRY ilutSetHPal(HPALETTE Pal)
505{
506 LPPALETTEENTRY PalEntries;
507 ILuint NumEntries, i;
508 ILubyte *TempPal;
509
510 ilutCurImage = ilGetCurImage();
511 if (ilutCurImage == NULL) {
512 ilSetError(ILUT_ILLEGAL_OPERATION);
513 return IL_FALSE;
514 }
515
516 NumEntries = GetPaletteEntries(Pal, 0, 0, NULL);
517 if (NumEntries == 0)
518 return IL_TRUE; // @TODO: Determine if correct...
519
520 PalEntries = (LPPALETTEENTRY)ialloc(NumEntries * sizeof(PALETTEENTRY));
521 if (PalEntries == NULL) {
522 return IL_FALSE;
523 }
524
525 NumEntries = GetPaletteEntries(Pal, 0, NumEntries, PalEntries);
526
527 TempPal = (ILubyte*)ialloc(NumEntries * 3);
528 if (TempPal == NULL) {
529 ifree(PalEntries);
530 return IL_FALSE;
531 }
532 if (ilutCurImage->Pal.Palette)
533 ifree(ilutCurImage->Pal.Palette);
534 ilutCurImage->Pal.Palette = TempPal;
535 ilutCurImage->Pal.PalSize = NumEntries * 3;
536 ilutCurImage->Pal.PalType = IL_PAL_RGB24;
537
538 for (i = 0; i < NumEntries; i++) {
539 *TempPal++ = PalEntries[i].peRed;
540 *TempPal++ = PalEntries[i].peGreen;
541 *TempPal++ = PalEntries[i].peBlue;
542 }
543
544 ifree(PalEntries);
545
546 return IL_TRUE;
547}
548
549
550ILboolean ILAPIENTRY ilutSetWinClipboard()

Callers

nothing calls this directly

Calls 1

ilSetErrorFunction · 0.85

Tested by

no test coverage detected