' Developer's Image Library - Converted "IL.h" Import Include file
' By: Todd Riggins(www.exodev.com)

$USE "devIL.lib"

'typedef unsigned int	ILenum
'typedef unsigned char	ILboolean
'typedef unsigned int	ILbitfield
'typedef char			ILbyte
'typedef short			ILshort
'typedef int			ILint
'typedef int			ILsizei
'typedef unsigned char	ILubyte
'typedef unsigned short	ILushort
'typedef unsigned int	ILuint
'typedef float			ILfloat
'typedef float			ILclampf
'typedef double			ILdouble
'typedef double			ILclampd
'typedef void			ILvoid

CONST IL_FALSE								=0
CONST IL_TRUE								=1

' Matches OpenGL's right now.
CONST IL_COLOUR_INDEX						=0x1900
CONST IL_COLOR_INDEX						=0x1900
CONST IL_RGB								=0x1907
CONST IL_RGBA								=0x1908
CONST IL_BGR								=0x80E0
CONST IL_BGRA								=0x80E1
CONST IL_LUMINANCE							=0x1909
CONST IL_LUMINANCE_ALPHA					=0x190A

CONST IL_BYTE								=0x1400
CONST IL_UNSIGNED_BYTE						=0x1401
CONST IL_SHORT								=0x1402
CONST IL_UNSIGNED_SHORT						=0x1403
CONST IL_INT								=0x1404
CONST IL_UNSIGNED_INT						=0x1405
CONST IL_FLOAT								=0x1406
CONST IL_DOUBLE								=0x140A

CONST IL_VENDOR								=0x1F00
CONST IL_LOAD_EXT							=0x1F01
CONST IL_SAVE_EXT							=0x1F02

'
' IL-specific #define's
'

CONST IL_VERSION_1_6_1						=1
CONST IL_VERSION							=161

' Attribute Bits
CONST IL_ORIGIN_BIT							=0x00000001
CONST IL_FILE_BIT							=0x00000002
CONST IL_PAL_BIT							=0x00000004
CONST IL_FORMAT_BIT							=0x00000008
CONST IL_TYPE_BIT							=0x00000010
CONST IL_COMPRESS_BIT						=0x00000020
CONST IL_LOADFAIL_BIT						=0x00000040
CONST IL_FORMAT_SPECIFIC_BIT				=0x00000080
CONST IL_ALL_ATTRIB_BITS					=0x000FFFFF

' Palette types
CONST IL_PAL_NONE							=0x0400
CONST IL_PAL_RGB24							=0x0401
CONST IL_PAL_RGB32							=0x0402
CONST IL_PAL_RGBA32							=0x0403
CONST IL_PAL_BGR24							=0x0404
CONST IL_PAL_BGR32							=0x0405
CONST IL_PAL_BGRA32							=0x0406

' Image types
CONST IL_TYPE_UNKNOWN						=0x0000
CONST IL_BMP								=0x0420
CONST IL_CUT								=0x0421
CONST IL_DOOM								=0x0422
CONST IL_DOOM_FLAT							=0x0423
CONST IL_ICO								=0x0424
CONST IL_JPG								=0x0425
CONST IL_JFIF								=0x0425
CONST IL_LBM								=0x0426
CONST IL_PCD								=0x0427
CONST IL_PCX								=0x0428
CONST IL_PIC								=0x0429
CONST IL_PNG								=0x042A
CONST IL_PNM								=0x042B
CONST IL_SGI								=0x042C
CONST IL_TGA								=0x042D
CONST IL_TIF								=0x042E
CONST IL_CHEAD								=0x042F
CONST IL_RAW								=0x0430
CONST IL_MDL								=0x0431
CONST IL_WAL								=0x0432
CONST IL_LIF								=0x0434
CONST IL_MNG								=0x0435
CONST IL_JNG								=0x0435
CONST IL_GIF								=0x0436
CONST IL_DDS								=0x0437
CONST IL_DCX								=0x0438
CONST IL_PSD								=0x0439
CONST IL_EXIF								=0x043A
CONST IL_PSP								=0x043B
CONST IL_PIX								=0x043C
CONST IL_PXR								=0x043D
CONST IL_XPM								=0x043E

CONST IL_JASC_PAL							=0x0475

' Error Types
CONST IL_NO_ERROR							=0x0000
CONST IL_INVALID_ENUM						=0x0501
CONST IL_OUT_OF_MEMORY						=0x0502
CONST IL_FORMAT_NOT_SUPPORTED				=0x0503
CONST IL_INTERNAL_ERROR						=0x0504
CONST IL_INVALID_VALUE						=0x0505
CONST IL_ILLEGAL_OPERATION					=0x0506
CONST IL_ILLEGAL_FILE_VALUE					=0x0507
CONST IL_INVALID_FILE_HEADER				=0x0508
CONST IL_INVALID_PARAM						=0x0509
CONST IL_COULD_NOT_OPEN_FILE				=0x050A
CONST IL_INVALID_EXTENSION					=0x050B
CONST IL_FILE_ALREADY_EXISTS				=0x050C
CONST IL_OUT_FORMAT_SAME					=0x050D
CONST IL_STACK_OVERFLOW						=0x050E
CONST IL_STACK_UNDERFLOW					=0x050F
CONST IL_INVALID_CONVERSION					=0x0510
CONST IL_BAD_DIMENSIONS						=0x0511
CONST IL_FILE_READ_ERROR					=0x0512  :' 05/12/2002: Addition by Sam.
CONST IL_FILE_WRITE_ERROR					=0x0512

CONST IL_LIB_GIF_ERROR						=0x05E1
CONST IL_LIB_JPEG_ERROR						=0x05E2
CONST IL_LIB_PNG_ERROR						=0x05E3
CONST IL_LIB_TIFF_ERROR						=0x05E4
CONST IL_LIB_MNG_ERROR						=0x05E5
CONST IL_UNKNOWN_ERROR						=0x05FF

' Origin Definitions
CONST IL_ORIGIN_SET							=0x0600
CONST IL_ORIGIN_LOWER_LEFT					=0x0601
CONST IL_ORIGIN_UPPER_LEFT					=0x0602
CONST IL_ORIGIN_MODE						=0x0603

' Format and Type Mode Definitions
CONST IL_FORMAT_SET							=0x0610
CONST IL_FORMAT_MODE						=0x0611
CONST IL_TYPE_SET							=0x0612
CONST IL_TYPE_MODE							=0x0613

' File definitions
CONST IL_FILE_OVERWRITE						=0x0620
CONST IL_FILE_MODE							=0x0621

' Palette definitions
CONST IL_CONV_PAL							=0x0630

' Load fail definitions
CONST IL_DEFAULT_ON_FAIL					=0x0632

' Key colour definitions
CONST IL_USE_KEY_COLOUR						=0x0635
CONST IL_USE_KEY_COLOR						=0x0635

' Interlace definitions
CONST IL_SAVE_INTERLACED					=0x0639
CONST IL_INTERLACE_MODE						=0x063A

' Quantization definitions
CONST IL_QUANTIZATION_MODE					=0x0640
CONST IL_WU_QUANT							=0x0641
CONST IL_NEU_QUANT							=0x0642
CONST IL_NEU_QUANT_SAMPLE					=0x0643

' Hints
CONST IL_FASTEST							=0x0660
CONST IL_LESS_MEM							=0x0661
CONST IL_DONT_CARE							=0x0662
CONST IL_MEM_SPEED_HINT						=0x0665
CONST IL_USE_COMPRESSION					=0x0666
CONST IL_NO_COMPRESSION						=0x0667
CONST IL_COMPRESSION_HINT					=0x0668

' Subimage types
CONST IL_SUB_NEXT							=0x0680
CONST IL_SUB_MIPMAP							=0x0681
CONST IL_SUB_LAYER							=0x0682

' Compression definitions
CONST IL_COMPRESS_MODE						=0x0700
CONST IL_COMPRESS_NONE						=0x0701
CONST IL_COMPRESS_RLE						=0x0702
CONST IL_COMPRESS_LZO						=0x0703
CONST IL_COMPRESS_ZLIB						=0x0704

' File format-specific values
CONST IL_TGA_CREATE_STAMP					=0x0710
CONST IL_JPG_QUALITY						=0x0711
CONST IL_PNG_INTERLACE						=0x0712
CONST IL_TGA_RLE							=0x0713
CONST IL_BMP_RLE							=0x0714
CONST IL_SGI_RLE							=0x0715
CONST IL_TGA_ID_STRING						=0x0717
CONST IL_TGA_AUTHNAME_STRING				=0x0718
CONST IL_TGA_AUTHCOMMENT_STRING				=0x0719
CONST IL_PNG_AUTHNAME_STRING				=0x071A
CONST IL_PNG_TITLE_STRING					=0x071B
CONST IL_PNG_DESCRIPTION_STRING				=0x071C
CONST IL_TIF_DESCRIPTION_STRING				=0x071D
CONST IL_TIF_HOSTCOMPUTER_STRING			=0x071E
CONST IL_TIF_DOCUMENTNAME_STRING			=0x071F
CONST IL_TIF_AUTHNAME_STRING				=0x0720
CONST IL_JPG_SAVE_FORMAT					=0x0721
CONST IL_CHEAD_HEADER_STRING				=0x0722
CONST IL_PCD_PICNUM							=0x0723

' DXTC definitions
CONST IL_DXTC_FORMAT						=0x0705
CONST IL_DXT1								=0x0706
CONST IL_DXT2								=0x0707
CONST IL_DXT3								=0x0708
CONST IL_DXT4								=0x0709
CONST IL_DXT5								=0x070A
CONST IL_DXT_NO_COMP						=0x070B
CONST IL_KEEP_DXTC_DATA						=0x070C
CONST IL_DXTC_DATA_FORMAT					=0x070D

' Cube map definitions
CONST IL_CUBEMAP_POSITIVEX					=0x00000400
CONST IL_CUBEMAP_NEGATIVEX					=0x00000800
CONST IL_CUBEMAP_POSITIVEY					=0x00001000
CONST IL_CUBEMAP_NEGATIVEY					=0x00002000
CONST IL_CUBEMAP_POSITIVEZ					=0x00004000
CONST IL_CUBEMAP_NEGATIVEZ					=0x00008000

' Values
CONST IL_VERSION_NUM						=0x0DE2
CONST IL_IMAGE_WIDTH						=0x0DE4
CONST IL_IMAGE_HEIGHT						=0x0DE5
CONST IL_IMAGE_DEPTH						=0x0DE6
CONST IL_IMAGE_SIZE_OF_DATA					=0x0DE7
CONST IL_IMAGE_BPP							=0x0DE8
CONST IL_IMAGE_BYTES_PER_PIXEL				=0x0DE8
CONST IL_IMAGE_BITS_PER_PIXEL				=0x0DE9
CONST IL_IMAGE_FORMAT						=0x0DEA
CONST IL_IMAGE_TYPE							=0x0DEB
CONST IL_PALETTE_TYPE						=0x0DEC
CONST IL_PALETTE_SIZE						=0x0DED
CONST IL_PALETTE_BPP						=0x0DEE
CONST IL_PALETTE_NUM_COLS					=0x0DEF
CONST IL_PALETTE_BASE_TYPE					=0x0DF0
CONST IL_NUM_IMAGES							=0x0DF1
CONST IL_NUM_MIPMAPS						=0x0DF2
CONST IL_NUM_LAYERS							=0x0DF3
CONST IL_ACTIVE_IMAGE						=0x0DF4
CONST IL_ACTIVE_MIPMAP						=0x0DF5
CONST IL_ACTIVE_LAYER						=0x0DF6
CONST IL_CUR_IMAGE							=0x0DF7
CONST IL_IMAGE_DURATION						=0x0DF8
CONST IL_IMAGE_PLANESIZE					=0x0DF9
CONST IL_IMAGE_BPC							=0x0DFA
CONST IL_IMAGE_OFFX							=0x0DFB
CONST IL_IMAGE_OFFY							=0x0DFC
CONST IL_IMAGE_CUBEFLAGS					=0x0DFD

CONST IL_SEEK_SET	=0
CONST IL_SEEK_CUR	=1
CONST IL_SEEK_END	=2
CONST IL_EOF		=-1

' Callback functions for file reading


' ImageLib Functions
DECLARE IMPORT,ilActiveImage(Number:UINT),INT
DECLARE IMPORT,ilActiveLayer(Number:UINT),INT
DECLARE IMPORT,ilActiveMipmap(Number:UINT),INT
DECLARE IMPORT,ilApplyPal(FileName:POINTER),INT
DECLARE IMPORT,ilApplyProfile(InProfile:POINTER,OutProfile:POINTER),INT
DECLARE IMPORT,ilBindImage(Image:UINT)
DECLARE IMPORT,ilBlit(Source:UINT,DestX:INT,DestY:INT,DestZ:INT,SrcX:UINT,SrcY:UINT,SrcZ:UINT,Width:UINT,Height:UINT,Depth:UINT),INT
DECLARE IMPORT,ilClearColour(Red:FLOAT,Green:FLOAT,Blue:FLOAT,Alpha:FLOAT)
DECLARE IMPORT,ilClearImage(),INT
DECLARE IMPORT,ilCloneCurImage(),UINT
DECLARE IMPORT,ilCompressFunc(Mode:UINT),INT
DECLARE IMPORT,ilConvertImage(DestFormat:UINT,DestType:UINT),INT
DECLARE IMPORT,ilConvertPal(DestFormat:UINT),INT
DECLARE IMPORT,ilCopyImage(Src:UINT),INT
DECLARE IMPORT,ilCopyPixels(XOff:UINT,YOff:UINT,ZOff:UINT,Width:UINT,Height:UINT,Depth:UINT,Format:UINT,EnumType:UINT,DataPointer:POINTER),UINT
DECLARE IMPORT,ilCreateSubImage(EnumType:UINT,Num:UINT),UINT
DECLARE IMPORT,ilDefaultImage(),INT
DECLARE IMPORT,ilDeleteImages(Num:INT,ImagesUINT:POINTER)
DECLARE IMPORT,ilDisable(Mode:UINT),INT
DECLARE IMPORT,ilEnable(Mode:UINT),INT
DECLARE IMPORT,ilFormatFunc(Mode:UINT),INT
DECLARE IMPORT,ilGenImages(Num:INT,ImagesUINT:POINTER)
DECLARE IMPORT,ilGetAlpha(EnumType:UINT),POINTER :' returns a pointer to an CHAR address
DECLARE IMPORT,ilGetBoolean(Mode:UINT),INT
DECLARE IMPORT,ilGetBooleanv(Mode:UINT,paramINT:POINTER)
DECLARE IMPORT,ilGetData(),POINTER :' returns a pointer to an CHAR address
DECLARE IMPORT,ilGetDXTCData(Buffer:POINTER,BufferSize:UINT,DXTCFormat:UINT),UINT
DECLARE IMPORT,ilGetError(),UINT
DECLARE IMPORT,ilGetInteger(Mode:UINT),INT
DECLARE IMPORT,ilGetIntegerv(Mode:UINT,paramINT:POINTER)
DECLARE IMPORT,ilGetLumpPos(),UINT
DECLARE IMPORT,ilGetPalette(),POINTER :' returns a pointer to an CHAR address
DECLARE IMPORT,ilGetString(StringName:UINT),POINTER :' returns a pointer to a string ( CHAR* )
DECLARE IMPORT,ilHint(Target:UINT,Mode:UINT)
DECLARE IMPORT,ilInit()
DECLARE IMPORT,ilIsDisabled(Mode:UINT),INT
DECLARE IMPORT,ilIsEnabled(Mode:UINT),INT
DECLARE IMPORT,ilIsImage(Image:UINT),INT
DECLARE IMPORT,ilIsValid(EnumType:UINT,FileName:POINTER),INT
DECLARE IMPORT,ilIsValidF(EnumType:UINT,FilePtr:POINTER),INT
DECLARE IMPORT,ilIsValidL(EnumType:UINT,Lump:POINTER,Size:UINT),INT
DECLARE IMPORT,ilKeyColour(Red:FLOAT,Green:FLOAT,Blue:FLOAT,Alpha:FLOAT)
DECLARE IMPORT,ilLoad(EnumType:UINT, FileName:POINTER),INT
DECLARE IMPORT,ilLoadF(EnumType:UINT, FilePtr:POINTER),INT
DECLARE IMPORT,ilLoadImage(FileName:POINTER),INT
DECLARE IMPORT,ilLoadL(EnumType:UINT,Lump:POINTER,Size:UINT),INT
DECLARE IMPORT,ilLoadPal(FileName:POINTER),INT
DECLARE IMPORT,ilOriginFunc(Mode:UINT),INT
DECLARE IMPORT,ilOverlayImage(Source:UINT,XCoord:INT,YCoord:INT,ZCoord:INT),INT
DECLARE IMPORT,ilPopAttrib()
DECLARE IMPORT,ilPushAttrib(Bits:UINT)
DECLARE IMPORT,ilRegisterFormat(Format:UINT)
DECLARE IMPORT,ilRegisterLoad(Ext:POINTER, IL_LOADPROC:UINT),INT
DECLARE IMPORT,ilRegisterMipNum(Num:UINT),INT
DECLARE IMPORT,ilRegisterNumImages(Num:UINT),INT
DECLARE IMPORT,ilRegisterOrigin(Origin:UINT)
DECLARE IMPORT,ilRegisterPal(Pal:POINTER,Size:UINT,EnumType:UINT)
DECLARE IMPORT,ilRegisterSave(Ext:POINTER, IL_SAVEPROC:UINT),INT
DECLARE IMPORT,ilRegisterType(EnumType:UINT)
DECLARE IMPORT,ilRemoveLoad(Ext:POINTER),INT
DECLARE IMPORT,ilRemoveSave(Ext:POINTER),INT
DECLARE IMPORT,ilResetMemory()
DECLARE IMPORT,ilResetRead()
DECLARE IMPORT,ilResetWrite()
DECLARE IMPORT,ilSave(EnumType:UINT,FileName:POINTER),INT
DECLARE IMPORT,ilSaveF(EnumType:UINT,FilePtr:POINTER),UINT
DECLARE IMPORT,ilSaveImage(FileName:POINTER),INT
DECLARE IMPORT,ilSaveL(EnumType:UINT,Lump:POINTER,Size:UINT),UINT
DECLARE IMPORT,ilSavePal(FileName:POINTER),INT
DECLARE IMPORT,ilSetData(DataPtr:POINTER),INT
DECLARE IMPORT,ilSetDuration(Duration:UINT),INT
DECLARE IMPORT,ilSetInteger(Mode:UINT,Param:INT)
DECLARE IMPORT,ilSetMemory(mAlloc:UINT, mFree:UINT) :' <---- Not sure about this one, see il.h
DECLARE IMPORT,ilSetPixels(XOff:INT,YOff:INT,ZOff:INT,Width:UINT,Height:UINT,Depth:UINT,Format:UINT,EnumType:UINT, DataPtr:POINTER)
DECLARE IMPORT,ilSetRead(fOpenRProc:UINT, fCloseRProc:UINT, fEofProc:UINT, fGetcProc:UINT, fReadProc:UINT, fSeekRProc:UINT, fTellRProc:UINT) :' <---- Not sure about this one, see il.h
DECLARE IMPORT,ilSetString(Mode:UINT,StringPtr:POINTER)
DECLARE IMPORT,ilSetWrite(fOpenWProc:UINT, fCloseWProc:UINT, fPutcProc:UINT, fSeekWProc:UINT, fTellWProc:UINT, fWriteProc:UINT):' <---- Not sure about this one, see il.h
DECLARE IMPORT,ilShutDown()
DECLARE IMPORT,ilTexImage(Width:UINT,Height:UINT,Depth:UINT,Bpp:CHAR,Format:UINT,EnumType:UINT,Dataptr:POINTER),INT
DECLARE IMPORT,ilTypeFunc(Mode:UINT),INT

DECLARE IMPORT,ilLoadData(FileName:POINTER,Width:UINT,Height:UINT,Depth:UINT,Bpp:CHAR),INT
DECLARE IMPORT,ilLoadDataF(FilePtr:POINTER,Width:UINT,Height:UINT,Depth:UINT,Bpp:CHAR),INT
DECLARE IMPORT,ilLoadDataL(Lump:POINTER,Size:UINT,Width:UINT,Height:UINT,Depth:UINT,Bpp:CHAR),INT
DECLARE IMPORT,ilSaveData(FileName:POINTER),INT

DECLARE IMPORT,ilLoadFromJpegStruct(JpegDecompressorPtr:POINTER),INT
DECLARE IMPORT,ilSaveFromJpegStruct(JpegCompressorPtr:POINTER),INT

' For all those weirdos that spell "colour" without the 'u'.
'#define ilClearColor	ilClearColour
'#define ilKeyColor		ilKeyColour
