MCPcopy Create free account
hub / github.com/DentonW/DevIL / ilLoadPltPal

Function ilLoadPltPal

DevIL/src-IL/src/il_pal.cpp:494–541  ·  view source on GitHub ↗

Loads an .plt palette file.

Source from the content-addressed store, hash-verified

492
493//! Loads an .plt palette file.
494ILboolean ilLoadPltPal(ILconst_string FileName)
495{
496 ILHANDLE PltFile;
497
498 if (!iCheckExtension(FileName, IL_TEXT("plt"))) {
499 ilSetError(IL_INVALID_EXTENSION);
500 return IL_FALSE;
501 }
502
503 if (iCurImage == NULL) {
504 ilSetError(IL_ILLEGAL_OPERATION);
505 return IL_FALSE;
506 }
507
508 PltFile = iopenr(FileName);
509 if (PltFile == NULL) {
510 ilSetError(IL_COULD_NOT_OPEN_FILE);
511 return IL_FALSE;
512 }
513
514 if (iCurImage->Pal.Palette && iCurImage->Pal.PalSize > 0 && iCurImage->Pal.PalType != IL_PAL_NONE) {
515 ifree(iCurImage->Pal.Palette);
516 iCurImage->Pal.Palette = NULL;
517 }
518
519 iCurImage->Pal.PalSize = GetLittleUInt();
520 if (iCurImage->Pal.PalSize == 0) {
521 ilSetError(IL_INVALID_FILE_HEADER);
522 return IL_FALSE;
523 }
524 iCurImage->Pal.PalType = IL_PAL_RGB24;
525 iCurImage->Pal.Palette = (ILubyte*)ialloc(iCurImage->Pal.PalSize);
526 if (!iCurImage->Pal.Palette) {
527 icloser(PltFile);
528 return IL_FALSE;
529 }
530
531 if (iread(iCurImage->Pal.Palette, iCurImage->Pal.PalSize, 1) != 1) {
532 ifree(iCurImage->Pal.Palette);
533 iCurImage->Pal.Palette = NULL;
534 icloser(PltFile);
535 return IL_FALSE;
536 }
537
538 icloser(PltFile);
539
540 return IL_TRUE;
541}
542
543
544// Assumes that Dest has nothing in it.

Callers 1

ILAPIENTRY ilLoadPalFunction · 0.85

Calls 3

iCheckExtensionFunction · 0.85
ilSetErrorFunction · 0.85
GetLittleUIntFunction · 0.85

Tested by

no test coverage detected