unit OpenIL; //------------------------------------------------------------------------------ // // ImageLib Sources // Copyright (C) 2000-2003 by Denton Woods // Last modified: 06/23/2002 <--Y2K Compliant! =] // // Filename: il/il.h // // Description: The main include file for DevIL // //------------------------------------------------------------------------------ {******************************************************************************} { Converted to Delphi by Alexander Blach (alexander@abee.de) } { Version: DevIL v1.6.6 } { Last modified: 08/08/2003 } {******************************************************************************} interface uses Windows; //{$DEFINE IL_NO_BMP} //{$DEFINE IL_NO_CUT} //{$DEFINE IL_NO_CHEAD} //{$DEFINE IL_NO_DCX} //{$DEFINE IL_NO_DDS} //{$DEFINE IL_NO_DOOM} //{$DEFINE IL_NO_GIF} //{$DEFINE IL_NO_ICO} //{$DEFINE IL_NO_JPG} //{$DEFINE IL_NO_LIF} //{$DEFINE IL_NO_LBM} //{$DEFINE IL_NO_MDL} //{$DEFINE IL_NO_PCD} //{$DEFINE IL_NO_PCX} //{$DEFINE IL_NO_PIC} //{$DEFINE IL_NO_PNG} //{$DEFINE IL_NO_PNM} //{$DEFINE IL_NO_PSD} //{$DEFINE IL_NO_RAW} //{$DEFINE IL_NO_SGI} //{$DEFINE IL_NO_TGA} //{$DEFINE IL_NO_TIF} //{$DEFINE IL_NO_WAL} //{$DEFINE IL_USE_IJL} type TILenum = LongWord; TILboolean = Byte; TILbitfield = LongWord; TILbyte = ShortInt; TILshort = SmallInt; TILint = Integer; TILsizei = Integer; TILubyte = Byte; TILushort = Word; TILuint = LongWord; TILfloat = Single; TILclampf = Single; TILdouble = Double; TILclampd = Double; PILboolean = ^Byte; PILbitfield = ^LongWord; PILbyte = ^ShortInt; PILshort = ^SmallInt; PILint = ^Integer; PILsizei = ^Integer; PILubyte = ^Byte; PILushort = ^Word; PILuint = ^LongWord; PILfloat = ^Single; PILclampf = ^Single; PILdouble = ^Double; PILclampd = ^Double; const IL_FALSE = 0; IL_TRUE = 1; // Matches OpenGL's right now. IL_COLOUR_INDEX = $1900; IL_COLOR_INDEX = $1900; IL_RGB = $1907; IL_RGBA = $1908; IL_BGR = $80E0; IL_BGRA = $80E1; IL_LUMINANCE = $1909; IL_BYTE = $1400; IL_UNSIGNED_BYTE = $1401; IL_SHORT = $1402; IL_UNSIGNED_SHORT = $1403; IL_INT = $1404; IL_UNSIGNED_INT = $1405; IL_FLOAT = $1406; IL_DOUBLE = $140A; IL_VENDOR = $1F00; // // IL-specific 's // IL_VERSION_1_5_6 = 1; IL_VERSION = 156; IL_LOAD_EXT = $1F01; IL_SAVE_EXT = $1F02; // Attribute Bits IL_ORIGIN_BIT = $00000001; IL_FILE_BIT = $00000002; IL_PAL_BIT = $00000004; IL_FORMAT_BIT = $00000008; IL_TYPE_BIT = $00000010; IL_COMPRESS_BIT = $00000020; IL_LOADFAIL_BIT = $00000040; IL_FORMAT_SPECIFIC_BIT = $00000080; IL_ALL_ATTRIB_BITS = $000FFFFF; // Palette types IL_PAL_NONE = $0400; IL_PAL_RGB24 = $0401; IL_PAL_RGB32 = $0402; IL_PAL_RGBA32 = $0403; IL_PAL_BGR24 = $0404; IL_PAL_BGR32 = $0405; IL_PAL_BGRA32 = $0406; // Image types IL_TYPE_UNKNOWN = $0000; IL_BMP = $0420; IL_CUT = $0421; IL_DOOM = $0422; IL_DOOM_FLAT = $0423; IL_ICO = $0424; IL_JPG = $0424; IL_LBM = $0426; IL_PCD = $0427; IL_PCX = $0428; IL_PIC = $0429; IL_PNG = $042A; IL_PNM = $042B; IL_SGI = $042C; IL_TGA = $042D; IL_TIF = $042E; IL_CHEAD = $042F; IL_RAW = $0430; IL_MDL = $0431; IL_WAL = $0432; IL_LIF = $0434; IL_MNG = $0435; IL_JNG = $0435; IL_GIF = $0436; IL_DDS = $0437; IL_DCX = $0438; IL_PSD = $0439; IL_EXIF = $043A; IL_PSP = $043B; IL_PIX = $043C; IL_PXR = $043D; IL_XPM = $043E; IL_JASC_PAL = $0475; // Error Types IL_NO_ERROR = $0000; IL_INVALID_ENUM = $0501; IL_OUT_OF_MEMORY = $0502; IL_FORMAT_NOT_SUPPORTED = $0503; IL_INTERNAL_ERROR = $0504; IL_INVALID_VALUE = $0505; IL_ILLEGAL_OPERATION = $0506; IL_ILLEGAL_FILE_VALUE = $0507; IL_INVALID_FILE_HEADER = $0508; IL_INVALID_PARAM = $0509; IL_COULD_NOT_OPEN_FILE = $050A; IL_INVALID_EXTENSION = $050B; IL_FILE_ALREADY_EXISTS = $050C; IL_OUT_FORMAT_SAME = $050D; IL_STACK_OVERFLOW = $050E; IL_STACK_UNDERFLOW = $050F; IL_INVALID_CONVERSION = $0510; IL_BAD_DIMENSIONS = $0511; IL_FILE_READ_ERROR = $0512; IL_LIB_GIF_ERROR = $05E1; IL_LIB_JPEG_ERROR = $05E2; IL_LIB_PNG_ERROR = $05E3; IL_LIB_TIFF_ERROR = $05E4; IL_LIB_MNG_ERROR = $05E5; IL_UNKNOWN_ERROR = $05FF; // Origin Definitions IL_ORIGIN_SET = $0600; IL_ORIGIN_LOWER_LEFT = $0601; IL_ORIGIN_UPPER_LEFT = $0602; IL_ORIGIN_MODE = $0603; // Format and Type Mode Definitions IL_FORMAT_SET = $0610; IL_FORMAT_MODE = $0611; IL_TYPE_SET = $0612; IL_TYPE_MODE = $0613; // File definitions IL_FILE_OVERWRITE = $0620; IL_FILE_MODE = $0621; // Palette definitions IL_CONV_PAL = $0630; // Load fail definitions IL_DEFAULT_ON_FAIL = $0632; // Key colour definitions IL_USE_KEY_COLOUR = $0635; IL_USE_KEY_COLOR = $0635; // Interlace definitions IL_SAVE_INTERLACED = $0639; IL_INTERLACE_MODE = $063A; // Quantization definitions IL_QUANTIZATION_MODE = $0640; IL_WU_QUANT = $0641; IL_NEU_QUANT = $0642; IL_NEU_QUANT_SAMPLE = $0643; // Hints IL_FASTEST = $0660; IL_LESS_MEM = $0661; IL_DONT_CARE = $0662; IL_MEM_SPEED_HINT = $0665; IL_USE_COMPRESSION = $0666; IL_NO_COMPRESSION = $0667; IL_COMPRESSION_HINT = $0668; // Subimage IL_SUB_NEXT = $0680; IL_SUB_MIPMAP = $0681; IL_SUB_LAYER = $0682; // Compression definitions (mostly for .oil) IL_COMPRESS_MODE = $0700; IL_COMPRESS_NONE = $0701; IL_COMPRESS_RLE = $0702; IL_COMPRESS_LZO = $0703; IL_COMPRESS_ZLIB = $0704; // File format-specific values IL_TGA_CREATE_STAMP = $0710; IL_JPG_QUALITY = $0711; IL_PNG_INTERLACE = $0712; IL_TGA_RLE = $0713; IL_BMP_RLE = $0714; IL_SGI_RLE = $0715; IL_TGA_ID_STRING = $0717; IL_TGA_AUTHNAME_STRING = $0718; IL_TGA_AUTHCOMMENT_STRING = $0719; IL_PNG_AUTHNAME_STRING = $071A; IL_PNG_TITLE_STRING = $071B; IL_PNG_DESCRIPTION_STRING = $071C; IL_TIF_DESCRIPTION_STRING = $071D; IL_TIF_HOSTCOMPUTER_STRING = $071E; IL_TIF_DOCUMENTNAME_STRING = $071F; IL_TIF_AUTHNAME_STRING = $0720; IL_JPG_SAVE_FORMAT = $0721; IL_CHEAD_HEADER_STRING = $0722; IL_PCD_PICNUM = $0723; // DXTC definitions IL_DXTC_FORMAT = $0705; IL_DXT1 = $0706; IL_DXT2 = $0707; IL_DXT3 = $0708; IL_DXT4 = $0709; IL_DXT5 = $070A; IL_DXT_NO_COMP = $070B; IL_KEEP_DXTC_DATA = $070C; IL_DXTC_DATA_FORMAT = $070D; // Cube map definitions IL_CUBEMAP_POSITIVEX = $00000400; IL_CUBEMAP_NEGATIVEX = $00000800; IL_CUBEMAP_POSITIVEY = $00001000; IL_CUBEMAP_NEGATIVEY = $00002000; IL_CUBEMAP_POSITIVEZ = $00004000; IL_CUBEMAP_NEGATIVEZ = $00008000; // Values IL_VERSION_NUM = $0DE2; IL_IMAGE_WIDTH = $0DE4; IL_IMAGE_HEIGHT = $0DE5; IL_IMAGE_DEPTH = $0DE6; IL_IMAGE_SIZE_OF_DATA = $0DE7; IL_IMAGE_BPP = $0DE8; IL_IMAGE_BYTES_PER_PIXEL = $0DE8; IL_IMAGE_BITS_PER_PIXEL = $0DE9; IL_IMAGE_FORMAT = $0DEA; IL_IMAGE_TYPE = $0DEB; IL_PALETTE_TYPE = $0DEC; IL_PALETTE_SIZE = $0DED; IL_PALETTE_BPP = $0DEE; IL_PALETTE_NUM_COLS = $0DEF; IL_PALETTE_BASE_TYPE = $0DF0; IL_NUM_IMAGES = $0DF1; IL_NUM_MIPMAPS = $0DF2; IL_NUM_LAYERS = $0DF3; IL_ACTIVE_IMAGE = $0DF4; IL_ACTIVE_MIPMAP = $0DF5; IL_ACTIVE_LAYER = $0DF6; IL_CUR_IMAGE = $0DF7; IL_IMAGE_DURATION = $0DF8; IL_IMAGE_PLANESIZE = $0DF9; IL_IMAGE_BPC = $0DFA; IL_IMAGE_OFFX = $0DFB; IL_IMAGE_OFFY = $0DFC; IL_IMAGE_CUBEFLAGS = $0DFD; const {$IFDEF OPENIL_DEBUG} OPENILDLL = 'DevIL-d.DLL'; {$ELSE} OPENILDLL = 'DevIL.DLL'; {$ENDIF} IL_SEEK_SET = 0; IL_SEEK_CUR = 1; IL_SEEK_END = 2; IL_EOF = -1; // Callback functions for file reading type TILHandle = Pointer; // Callback functions for file reading TfCloseRProc = procedure(Handle: TILHandle); stdcall; TfEofProc = function(Handle: TILHandle): TILboolean; stdcall; TfGetcProc = function(Handle: TILHandle): TILint; stdcall; TfOpenRProc = function(FileName: PChar): TILHandle; stdcall; TfReadProc = function(Buffer: Pointer; Size, Count: TILint; Handle: TILHandle): TILint; stdcall; TfSeekRProc = function(Handle: TILHandle; Offset, Origin: TILint): TILint; stdcall; TfTellRProc = function(Handle: TILHandle): TILint; stdcall; // Callback function for file writing TfCloseWProc = procedure(Handle: TILHandle); stdcall; TfOpenWProc = function(FileName: PChar): TILHandle; stdcall; TfPutcProc = function(c: TILubyte; Handle: TILHandle): TILint; stdcall; TfSeekWProc = function(Handle: TILHandle; Offset, Origin: TILint): TILint; stdcall; TfTellWProc = function(Handle: TILHandle): TILint; stdcall; TfWriteProc = function(Buffer: Pointer; Size: TILuint; Count: TILuint; Handle: TILHandle): TILint; stdcall; // Registered format procedures TIL_LOADPROC = function(FileName: PChar): TILboolean; stdcall; TIL_SAVEPROC = function(FileName: PChar): TILboolean; stdcall; // ImageLib Functions function ilActiveImage(Number: TILuint): TILboolean; stdcall; external OPENILDLL; function ilActiveLayer(Number: TILuint): TILboolean; stdcall; external OPENILDLL; function ilActiveMipmap(Number: TILuint): TILboolean; stdcall; external OPENILDLL; function ilApplyPal(FileName: PChar): TILboolean; stdcall; external OPENILDLL; function ilApplyProfile(InProfile, OutProfile: PChar): TILboolean; stdcall; external OPENILDLL; procedure ilBindImage(Image: TILuint); stdcall; external OPENILDLL; function ilBlit(Src: TILuint; DestX, DestY, DestZ: TILint; SrcX, SrcY, SrcZ, Width, Height, Depth: TILuint): TILboolean; stdcall; external OPENILDLL; procedure ilClearColour(Red, Green, Blue, Alpha: TILclampf); stdcall; external OPENILDLL; procedure ilClearColor(Red, Green, Blue, Alpha: TILclampf); stdcall; external OPENILDLL name 'ilClearColour'; function ilClearImage: TILboolean; stdcall; external OPENILDLL; function ilCloneCurImage: TILuint; stdcall; external OPENILDLL; function ilCompressFunc(Mode: TILenum): TILboolean; stdcall; external OPENILDLL; function ilConvertImage(DestFormat, DestType: TILenum): TILboolean; stdcall; external OPENILDLL; function ilConvertPal(DestFormat: TILenum): TILboolean; stdcall; external OPENILDLL; function ilCopyImage(Src: TILuint): TILboolean; stdcall; external OPENILDLL; procedure ilCopyPixels(XOff, YOff, ZOff, Width, Height, Depth: TILuint; Format, _Type: TILenum; Data: Pointer); stdcall; external OPENILDLL; procedure ilCreateSubImage(SubType: TILenum; Num: TILuint); stdcall; external OPENILDLL; procedure ilDefaultImage; stdcall; external OPENILDLL; procedure ilDeleteImages(Num: TILsizei; const Images: PILuint); stdcall; external OPENILDLL; function ilDisable(Mode: TILenum): TILboolean; stdcall; external OPENILDLL; function ilEnable(Mode: TILenum): TILboolean; stdcall; external OPENILDLL; function ilFormatFunc(Mode: TILenum): TILboolean; stdcall; external OPENILDLL; procedure ilGenImages(Num: TILsizei; Images: PILuint); stdcall; external OPENILDLL; function ilGetAlpha(_Type: TILenum): PILubyte; stdcall; external OPENILDLL; function ilGetBoolean(Mode: TILenum): TILboolean; stdcall; external OPENILDLL; procedure ilGetBooleanv(Mode: TILenum; Param: PILboolean); stdcall; external OPENILDLL; function ilGetData: PILubyte; stdcall; external OPENILDLL; function ilGetDXTCData(Buffer: PILubyte; BufferSize: TILuint; DXTCFormat: TILenum): TILuint; stdcall; external OPENILDLL; function ilGetError: TILenum; stdcall; external OPENILDLL; function ilGetInteger(Mode: TILenum): TILint; stdcall; external OPENILDLL; procedure ilGetIntegerv(Mode: TILenum; Param: PILint); stdcall; external OPENILDLL; function ilGetLumpPos: TILuint; stdcall; external OPENILDLL; function ilGetPalette: PILubyte; stdcall; external OPENILDLL; function ilGetString(StringName: TILenum): PChar; stdcall; external OPENILDLL; procedure ilHint(Target, Mode: TILenum); stdcall; external OPENILDLL; procedure ilInit; stdcall; external OPENILDLL; function ilIsDisabled(Mode: TILenum): TILboolean; stdcall; external OPENILDLL; function ilIsEnabled(Mode: TILenum): TILboolean; stdcall; external OPENILDLL; function ilIsImage(Image: TILuint): TILboolean; stdcall; external OPENILDLL; function ilIsValid(_Type: TILenum; FileName: PChar): TILboolean; stdcall; external OPENILDLL; function ilIsValidF(_Type: TILenum; _File: TILHandle): TILboolean; stdcall; external OPENILDLL; function ilIsValidL(_Type: TILenum; Lump: Pointer; Size: TILuint): TILboolean; stdcall; external OPENILDLL; procedure ilKeyColor(Red: TILubyte; Green: TILubyte; Blue: TILubyte; PalNum: TILubyte); stdcall; external OPENILDLL name 'ilKeyColour'; procedure ilKeyColour(Red: TILubyte; Green: TILubyte; Blue: TILubyte; PalNum: TILubyte); stdcall; external OPENILDLL; function ilLoad(_Type: TILenum; FileName: PChar): TILboolean; stdcall; external OPENILDLL; function ilLoadF(_Type: TILenum; _File: TILHandle): TILboolean; stdcall; external OPENILDLL; function ilLoadImage(FileName: PChar): TILboolean; stdcall; external OPENILDLL; function ilLoadL(_Type: TILenum; Lump: Pointer; Size: TILuint): TILboolean; stdcall; external OPENILDLL; function ilLoadPal(FileName: PChar): TILboolean; stdcall; external OPENILDLL; function ilOriginFunc(Mode: TILenum): TILboolean; stdcall; external OPENILDLL; function ilOverlayImage(Src: TILuint; XCoord, YCoord, ZCoord: TILint): TILboolean; stdcall; external OPENILDLL; procedure ilPopAttrib; stdcall; external OPENILDLL; procedure ilPushAttrib(Bits: TILuint); stdcall; external OPENILDLL; procedure ilRegisterFormat(Format: TILenum); stdcall; external OPENILDLL; function ilRegisterLoad(Ext: PChar; Load: TIL_LOADPROC): TILboolean; stdcall; external OPENILDLL; function ilRegisterMipNum(Num: TILuint): TILboolean; stdcall; external OPENILDLL; function ilRegisterNumImages(Num: TILuint): TILboolean; stdcall; external OPENILDLL; procedure ilRegisterOrigin(Origin: TILenum); stdcall; external OPENILDLL; procedure ilRegisterPal(Pal: Pointer; Size: TILuint; _Type: TILenum); stdcall; external OPENILDLL; function ilRegisterSave(Ext: PChar; Save: TIL_SAVEPROC): TILboolean; stdcall; external OPENILDLL; procedure ilRegisterType(_Type: TILenum); stdcall; external OPENILDLL; function ilRemoveLoad(Ext: PChar): TILboolean; stdcall; external OPENILDLL; function ilRemoveSave(Ext: PChar): TILboolean; stdcall; external OPENILDLL; procedure ilResetRead; stdcall; external OPENILDLL; procedure ilResetWrite; stdcall; external OPENILDLL; function ilSave(_Type: TILenum; FileName: PChar): TILboolean; stdcall; external OPENILDLL; function ilSaveF(_Type: TILenum; _File: TILHandle): TILboolean; stdcall; external OPENILDLL; function ilSaveImage(FileName: PChar): TILboolean; stdcall; external OPENILDLL; function ilSaveL(_Type: TILenum; Lump: Pointer; Size: TILuint): TILboolean; stdcall; external OPENILDLL; function ilSavePal(FileName: PChar): TILboolean; stdcall; external OPENILDLL; function ilSetData(Data: Pointer): TILboolean; stdcall; external OPENILDLL; function ilSetDuration(Duration: TILuint): TILboolean; stdcall; external OPENILDLL; procedure ilSetInteger(Mode: TILenum; Param: TILint); stdcall; external OPENILDLL; procedure ilSetPixels(XOff, YOff, ZOff, Width, Height, Depth: TILuint; Format, _Type: TILenum; Data: Pointer); stdcall; external OPENILDLL; procedure ilSetRead(Open: TfOpenRProc; Close: TfCloseRProc; Eof: TfEofProc; Getc: TfGetcProc; Read: TfReadProc; Seek: TfSeekRProc; Tell: TfTellRProc); stdcall; external OPENILDLL; procedure ilSetString(Mode: TILenum; Param: PChar); stdcall; external OPENILDLL; procedure ilSetWrite(Open: TfOpenWProc; Close: TfCloseWProc; Putc: TfPutcProc; Seek: TfSeekWProc; Tell: TfTellWProc; Write: TfWriteProc); stdcall; external OPENILDLL; function ilTexImage(Width, Height, Depth: TILuint; Bpp: TILubyte; Format, _Type: TILenum; Data: Pointer): TILboolean; stdcall; external OPENILDLL; function ilTypeFunc(Mode: TILenum): TILboolean; stdcall; external OPENILDLL; function ilLoadData(FileName: PChar; Width, Height, Depth: TILuint; Bpp: TILubyte): TILboolean; stdcall; external OPENILDLL; function ilLoadDataF(_File: TILHandle; Width, Height, Depth: TILuint; Bpp: TILubyte): TILboolean; stdcall; external OPENILDLL; function ilLoadDataL(Lump: Pointer; Size: TILuint; Width, Height, Depth: TILuint; Bpp: TILubyte): TILboolean; stdcall; external OPENILDLL; function ilSaveData(FileName: PChar): TILboolean; stdcall; external OPENILDLL; implementation end.