// Internal function to get the header and check it. ILboolean iIsValidPix() { PIXHEAD Head; if (!iGetPixHead(&Head)) return IL_FALSE; iseek(-(ILint)sizeof(PIXHEAD), IL_SEEK_CUR); return iCheckPix(&Head); }
// Internal function used to load the Pix. ILboolean iLoadPixInternal() { PIXHEAD Header; ILuint i, j; ILubyte ByteHead, Colour[3]; if (iCurImage == NULL) { ilSetError(IL_ILLEGAL_OPERATION); return IL_FALSE; } if (!iGetPixHead(&Header)) return IL_FALSE; if (!iCheckPix(&Header)) { ilSetError(IL_INVALID_FILE_HEADER); return IL_FALSE; } if (!ilTexImage(Header.Width, Header.Height, 1, 3, IL_BGR, IL_UNSIGNED_BYTE, NULL)) return IL_FALSE; for (i = 0; i < iCurImage->SizeOfData; ) { ByteHead = igetc(); if (iread(Colour, 1, 3) != 3) return IL_FALSE; for (j = 0; j < ByteHead; j++) { iCurImage->Data[i++] = Colour[0]; iCurImage->Data[i++] = Colour[1]; iCurImage->Data[i++] = Colour[2]; } } iCurImage->Origin = IL_ORIGIN_UPPER_LEFT; ilFixImage(); return IL_TRUE; }