//! Retrieves information about the current bound image. void ILAPIENTRY iluGetImageInfo(ILinfo *Info) { iluCurImage = ilGetCurImage(); if (iluCurImage == NULL || Info == NULL) { ilSetError(ILU_ILLEGAL_OPERATION); return; } Info->Id = ilGetCurName(); Info->Data = ilGetData(); Info->Width = iluCurImage->Width; Info->Height = iluCurImage->Height; Info->Depth = iluCurImage->Depth; Info->Bpp = iluCurImage->Bpp; Info->SizeOfData = iluCurImage->SizeOfData; Info->Format = iluCurImage->Format; Info->Type = iluCurImage->Type; Info->Origin = iluCurImage->Origin; Info->Palette = iluCurImage->Pal.Palette; Info->PalType = iluCurImage->Pal.PalType; Info->PalSize = iluCurImage->Pal.PalSize; iGetIntegervImage(iluCurImage, IL_NUM_IMAGES, (ILint*)&Info->NumNext); iGetIntegervImage(iluCurImage, IL_NUM_MIPMAPS, (ILint*)&Info->NumMips); iGetIntegervImage(iluCurImage, IL_NUM_LAYERS, (ILint*)&Info->NumLayers); return; }
//! Sets Param equal to the current value of the Mode void ILAPIENTRY ilGetIntegerv(ILenum Mode, ILint *Param) { if (Param == NULL) { ilSetError(IL_INVALID_PARAM); return; } *Param = 0; switch (Mode) { // Integer values case IL_COMPRESS_MODE: *Param = ilStates[ilCurrentPos].ilCompression; break; case IL_CUR_IMAGE: if (iCurImage == NULL) { ilSetError(IL_ILLEGAL_OPERATION); break; } *Param = ilGetCurName(); break; case IL_FORMAT_MODE: *Param = ilStates[ilCurrentPos].ilFormatMode; break; case IL_INTERLACE_MODE: *Param = ilStates[ilCurrentPos].ilInterlace; break; case IL_KEEP_DXTC_DATA: *Param = ilStates[ilCurrentPos].ilKeepDxtcData; break; case IL_ORIGIN_MODE: *Param = ilStates[ilCurrentPos].ilOriginMode; break; case IL_MAX_QUANT_INDICES: *Param = ilStates[ilCurrentPos].ilQuantMaxIndexs; break; case IL_NEU_QUANT_SAMPLE: *Param = ilStates[ilCurrentPos].ilNeuSample; break; case IL_QUANTIZATION_MODE: *Param = ilStates[ilCurrentPos].ilQuantMode; break; case IL_TYPE_MODE: *Param = ilStates[ilCurrentPos].ilTypeMode; break; case IL_VERSION_NUM: *Param = IL_VERSION; break; // Image specific values case IL_ACTIVE_IMAGE: case IL_ACTIVE_MIPMAP: case IL_ACTIVE_LAYER: *Param = iGetActiveNum(Mode); break; // Format-specific values case IL_BMP_RLE: *Param = ilStates[ilCurrentPos].ilBmpRle; break; case IL_DXTC_FORMAT: *Param = ilStates[ilCurrentPos].ilDxtcFormat; break; case IL_JPG_QUALITY: *Param = ilStates[ilCurrentPos].ilJpgQuality; break; case IL_JPG_SAVE_FORMAT: *Param = ilStates[ilCurrentPos].ilJpgFormat; break; case IL_PCD_PICNUM: *Param = ilStates[ilCurrentPos].ilPcdPicNum; break; case IL_PNG_ALPHA_INDEX: *Param = ilStates[ilCurrentPos].ilPngAlphaIndex; break; case IL_PNG_INTERLACE: *Param = ilStates[ilCurrentPos].ilPngInterlace; break; case IL_SGI_RLE: *Param = ilStates[ilCurrentPos].ilSgiRle; break; case IL_TGA_CREATE_STAMP: *Param = ilStates[ilCurrentPos].ilTgaCreateStamp; break; case IL_TGA_RLE: *Param = ilStates[ilCurrentPos].ilTgaRle; break; case IL_VTF_COMP: *Param = ilStates[ilCurrentPos].ilVtfCompression; break; // Boolean values case IL_CONV_PAL: *Param = ilStates[ilCurrentPos].ilAutoConvPal; break; case IL_DEFAULT_ON_FAIL: *Param = ilStates[ilCurrentPos].ilDefaultOnFail; break; case IL_FILE_MODE: *Param = ilStates[ilCurrentPos].ilOverWriteFiles; break; case IL_FORMAT_SET: *Param = ilStates[ilCurrentPos].ilFormatSet; break; case IL_ORIGIN_SET: *Param = ilStates[ilCurrentPos].ilOriginSet; break; case IL_TYPE_SET: *Param = ilStates[ilCurrentPos].ilTypeSet; break; case IL_USE_KEY_COLOUR: *Param = ilStates[ilCurrentPos].ilUseKeyColour; break; case IL_BLIT_BLEND: *Param = ilStates[ilCurrentPos].ilBlitBlend; break; case IL_JPG_PROGRESSIVE: *Param = ilStates[ilCurrentPos].ilJpgProgressive; break; case IL_NVIDIA_COMPRESS: *Param = ilStates[ilCurrentPos].ilUseNVidiaDXT; break; case IL_SQUISH_COMPRESS: *Param = ilStates[ilCurrentPos].ilUseSquishDXT; break; default: iGetIntegervImage(iCurImage, Mode, Param); } return; }