| 502 | |
| 503 | |
| 504 | ILboolean 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 | |
| 550 | ILboolean ILAPIENTRY ilutSetWinClipboard() |
nothing calls this directly
no test coverage detected