diff options
Diffstat (limited to 'DevIL/bindings/delphi/openil.pas')
-rw-r--r-- | DevIL/bindings/delphi/openil.pas | 518 |
1 files changed, 518 insertions, 0 deletions
diff --git a/DevIL/bindings/delphi/openil.pas b/DevIL/bindings/delphi/openil.pas new file mode 100644 index 00000000..262c9c2a --- /dev/null +++ b/DevIL/bindings/delphi/openil.pas @@ -0,0 +1,518 @@ +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. + |