Add DevIL 1.7.8.

This commit is contained in:
rude
2013-09-26 00:20:08 +02:00
parent 6e493fb605
commit c065120c58
487 changed files with 219483 additions and 0 deletions
@@ -0,0 +1,86 @@
Using DevIL from Visual Basic 6.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The idea:
1) Start by installing the DLLs.
2) In your VB-project, add the .BAS files that you need as modules.
3) Just use the subs/functions and constants.
The buts:
1) DevIL's data types have been converted to native VB-types. This should generally
work alright, except that
a) VB only knows unsigned bytes and signed integers/longs. So sometimes a value is
defined as signed in VB where it is actually unsigned, and vice-versa.
b) DevIL's ILboolean type has been converted to byte. Don't treat these as VB
booleans; only use them to compare to IL_TRUE and IL_FALSE.
2) Subs/functions that take a pointer to an array as parameter have been declared to
take a ByRef Element As ElementType. You should define an array of ElementType (not
array of variants!), and pass the first element to the function. The function will
then access the whole array.
Example: Dim Names(2) As Long
ilGenImages 3, Names(0) ' Fills all 3 elements of Names
(If you only use a single element, you do not really need an array. You can just
pass a variable of the element type.)
The following subs/functions uses arrays of byte (binary data):
ilCopyPixels (Outputs data. Make sure your array is big enough!)
ilIsValidL
ilLoadL
ilRegisterPal
ilSetPixels
ilTexImage
ilTexImage is a special case, because you might want to pass it a null-pointer
instead of actual data. This cannot be done with the same VB declaration, so I've
made ilTexImage0 for this purpose. Pass ilTexImage0 a zero as the last parameter.
Other functions that operate on arrays:
ilDeleteImages array of long (image "names")
ilGenImages array of long (image "names")
3) Functions that return pointers have been converted to return a long. But they are
effectively useless in VB. These are:
ilGetData
ilGetPalette
ilGetString
iluErrorString
iluGetString
ilutGetString
ilutGetPaddedData
4) ilutGetBmpInfo and all ilutD3D8-functions are not available.
5) You will generally not be able to implement the call-back functions in VB, because
they must be able to handle pointers. But the call-back functions are only used if
you want to modify the way DevIL loads and saves images, and usually you won't need
to do that.
6) The old VB-examples supplied by Timo Heister don't seem to work. I've yet to write
some new ones.
7) The VB-headers have only seen minimal testing. Bugs may lure on the unwary.
(I'm especially nervous about iluGetImageInfo).
8) The header-files are created specificly for VB 6.0. I very much doubt that they will
be of any use in VB.net.
Feel free to send me any comments.
Rune Kock (rune@vupti.com)
@@ -0,0 +1,378 @@
Attribute VB_Name = "Module1"
'-----------------------------------------------------------------------------
'
' ImageLib Sources
' Copyright (C) 2000-2002 by Denton Woods
' Converted from il.h by Rune Kock (rune@vupti.com)
' based on the earlier conversion by Timo Heister (Timo-Heister@gmx.de)
' Last modified: 22 June 2002, based on il.h dated 06/22/2002
'
' Filename: il.bas
'
' Description: The main include file for DevIL
'
'-----------------------------------------------------------------------------
' I've converted the types as follows. I have not dared use user-defined types, as I
' don't know how VB handles them internally. This means, unfortunately, that the headers
' are less informative than the original. So refer to il.h to see the original types.
' ILenum long
' ILboolean byte
' ILbitfield long
' ILbyte byte
' ILshort integer
' ILint long
' ILsizei long
' ILubyte byte
' ILushort integer
' ILuint long
' ILfloat single
' ILclampf single
' ILdouble double
' ILclampd double
' ILvoid n/a
Option Explicit
Public Const IL_FALSE = 0
Public Const IL_TRUE = 1
' Matches OpenGL's right now.
Public Const IL_COLOUR_INDEX = &H1900
Public Const IL_COLOR_INDEX = &H1900
Public Const IL_RGB = &H1907
Public Const IL_RGBA = &H1908
Public Const IL_BGR = &H80E0
Public Const IL_BGRA = &H80E1
Public Const IL_LUMINANCE = &H1909
Public Const IL_BYTE = &H1400
Public Const IL_UNSIGNED_BYTE = &H1401
Public Const IL_SHORT = &H1402
Public Const IL_UNSIGNED_SHORT = &H1403
Public Const IL_INT = &H1404
Public Const IL_UNSIGNED_INT = &H1405
Public Const IL_FLOAT = &H1406
Public Const IL_DOUBLE = &H140A
Public Const IL_VENDOR = &H1F00
'
' IL-specific public const's
'
Public Const IL_VERSION_1_6_0 = 1
Public Const IL_VERSION = 160
Public Const IL_LOAD_EXT = &H1F01
Public Const IL_SAVE_EXT = &H1F02
' Attribute Bits
Public Const IL_ORIGIN_BIT = &H1
Public Const IL_FILE_BIT = &H2
Public Const IL_PAL_BIT = &H4
Public Const IL_FORMAT_BIT = &H8
Public Const IL_TYPE_BIT = &H10
Public Const IL_COMPRESS_BIT = &H20
Public Const IL_LOADFAIL_BIT = &H40
Public Const IL_FORMAT_SPECIFIC_BIT = &H80
Public Const IL_ALL_ATTRIB_BITS = &HFFFFF
' Palette types
Public Const IL_PAL_NONE = &H400
Public Const IL_PAL_RGB24 = &H401
Public Const IL_PAL_RGB32 = &H402
Public Const IL_PAL_RGBA32 = &H403
Public Const IL_PAL_BGR24 = &H404
Public Const IL_PAL_BGR32 = &H405
Public Const IL_PAL_BGRA32 = &H406
' Image types
Public Const IL_TYPE_UNKNOWN = &H0
Public Const IL_BMP = &H420
Public Const IL_CUT = &H421
Public Const IL_DOOM = &H422
Public Const IL_DOOM_FLAT = &H423
Public Const IL_ICO = &H424
Public Const IL_JPG = &H425
Public Const IL_LBM = &H426
Public Const IL_PCD = &H427
Public Const IL_PCX = &H428
Public Const IL_PIC = &H429
Public Const IL_PNG = &H42A
Public Const IL_PNM = &H42B
Public Const IL_SGI = &H42C
Public Const IL_TGA = &H42D
Public Const IL_TIF = &H42E
Public Const IL_CHEAD = &H42F
Public Const IL_RAW = &H430
Public Const IL_MDL = &H431
Public Const IL_WAL = &H432
Public Const IL_OIL = &H433
Public Const IL_LIF = &H434
Public Const IL_MNG = &H435
Public Const IL_JNG = &H435
Public Const IL_GIF = &H436
Public Const IL_DDS = &H437
Public Const IL_DCX = &H438
Public Const IL_PSD = &H439
Public Const IL_EXIF = &H43A
Public Const IL_PSP = &H43B
Public Const IL_PIX = &H43C
Public Const IL_PXR = &H43D
Public Const IL_XPM = &H43E
Public Const IL_JASC_PAL = &H475
' Error Types
Public Const IL_NO_ERROR = &H0
Public Const IL_INVALID_ENUM = &H501
Public Const IL_OUT_OF_MEMORY = &H502
Public Const IL_FORMAT_NOT_SUPPORTED = &H503
Public Const IL_INTERNAL_ERROR = &H504
Public Const IL_INVALID_VALUE = &H505
Public Const IL_ILLEGAL_OPERATION = &H506
Public Const IL_ILLEGAL_FILE_VALUE = &H507
Public Const IL_INVALID_FILE_HEADER = &H508
Public Const IL_INVALID_PARAM = &H509
Public Const IL_COULD_NOT_OPEN_FILE = &H50A
Public Const IL_INVALID_EXTENSION = &H50B
Public Const IL_FILE_ALREADY_EXISTS = &H50C
Public Const IL_OUT_FORMAT_SAME = &H50D
Public Const IL_STACK_OVERFLOW = &H50E
Public Const IL_STACK_UNDERFLOW = &H50F
Public Const IL_INVALID_CONVERSION = &H510
Public Const IL_BAD_DIMENSIONS = &H511
Public Const IL_FILE_READ_ERROR = &H512
Public Const IL_LIB_GIF_ERROR = &H5E1
Public Const IL_LIB_JPEG_ERROR = &H5E2
Public Const IL_LIB_PNG_ERROR = &H5E3
Public Const IL_LIB_TIFF_ERROR = &H5E4
Public Const IL_LIB_MNG_ERROR = &H5E5
Public Const IL_UNKNOWN_ERROR = &H5FF
' Origin Definitions
Public Const IL_ORIGIN_SET = &H600
Public Const IL_ORIGIN_LOWER_LEFT = &H601
Public Const IL_ORIGIN_UPPER_LEFT = &H602
Public Const IL_ORIGIN_MODE = &H603
' Format and Type Mode Definitions
Public Const IL_FORMAT_SET = &H610
Public Const IL_FORMAT_MODE = &H611
Public Const IL_TYPE_SET = &H612
Public Const IL_TYPE_MODE = &H613
' File definitions
Public Const IL_FILE_OVERWRITE = &H620
Public Const IL_FILE_MODE = &H621
' Palette definitions
Public Const IL_CONV_PAL = &H630
' Load fail definitions
Public Const IL_DEFAULT_ON_FAIL = &H632
' Key colour definitions
Public Const IL_USE_KEY_COLOUR = &H635
Public Const IL_USE_KEY_COLOR = &H635
' Interlace definitions
Public Const IL_SAVE_INTERLACED = &H639
Public Const IL_INTERLACE_MODE = &H63A
' Quantization definitions
Public Const IL_QUANTIZATION_MODE = &H640
Public Const IL_WU_QUANT = &H641
Public Const IL_NEU_QUANT = &H642
Public Const IL_NEU_QUANT_SAMPLE = &H643
' Hints
Public Const IL_FASTEST = &H660
Public Const IL_LESS_MEM = &H661
Public Const IL_DONT_CARE = &H662
Public Const IL_MEM_SPEED_HINT = &H665
Public Const IL_USE_COMPRESSION = &H666
Public Const IL_NO_COMPRESSION = &H667
Public Const IL_COMPRESSION_HINT = &H668
' Subimage types
Public Const IL_SUB_NEXT = &H680
Public Const IL_SUB_MIPMAP = &H681
Public Const IL_SUB_LAYER = &H682
' Compression definitions (mostly for .oil)
Public Const IL_COMPRESS_MODE = &H700
Public Const IL_COMPRESS_NONE = &H701
Public Const IL_COMPRESS_RLE = &H702
Public Const IL_COMPRESS_LZO = &H703
Public Const IL_COMPRESS_ZLIB = &H704
' File format-specific values
Public Const IL_TGA_CREATE_STAMP = &H710
Public Const IL_JPG_QUALITY = &H711
Public Const IL_PNG_INTERLACE = &H712
Public Const IL_TGA_RLE = &H713
Public Const IL_BMP_RLE = &H714
Public Const IL_SGI_RLE = &H715
Public Const IL_TGA_ID_STRING = &H717
Public Const IL_TGA_AUTHNAME_STRING = &H718
Public Const IL_TGA_AUTHCOMMENT_STRING = &H719
Public Const IL_PNG_AUTHNAME_STRING = &H71A
Public Const IL_PNG_TITLE_STRING = &H71B
Public Const IL_PNG_DESCRIPTION_STRING = &H71C
Public Const IL_TIF_DESCRIPTION_STRING = &H71D
Public Const IL_TIF_HOSTCOMPUTER_STRING = &H71E
Public Const IL_TIF_DOCUMENTNAME_STRING = &H71F
Public Const IL_TIF_AUTHNAME_STRING = &H720
Public Const IL_JPG_SAVE_FORMAT = &H721
Public Const IL_CHEAD_HEADER_STRING = &H722
Public Const IL_PCD_PICNUM = &H723
' DXTC definitions
Public Const IL_DXTC_FORMAT = &H705
Public Const IL_DXT1 = &H706
Public Const IL_DXT2 = &H707
Public Const IL_DXT3 = &H708
Public Const IL_DXT4 = &H709
Public Const IL_DXT5 = &H70A
Public Const IL_DXT_NO_COMP = &H70B
Public Const IL_KEEP_DXTC_DATA = &H70C
Public Const IL_DXTC_DATA_FORMAT = &H70D
' Cube map definitions
Public Const IL_CUBEMAP_POSITIVEX = &H400
Public Const IL_CUBEMAP_NEGATIVEX = &H800
Public Const IL_CUBEMAP_POSITIVEY = &H1000
Public Const IL_CUBEMAP_NEGATIVEY = &H2000
Public Const IL_CUBEMAP_POSITIVEZ = &H4000
Public Const IL_CUBEMAP_NEGATIVEZ = &H8000
' Values
Public Const IL_VERSION_NUM = &HDE2
Public Const IL_IMAGE_WIDTH = &HDE4
Public Const IL_IMAGE_HEIGHT = &HDE5
Public Const IL_IMAGE_DEPTH = &HDE6
Public Const IL_IMAGE_SIZE_OF_DATA = &HDE7
Public Const IL_IMAGE_BPP = &HDE8
Public Const IL_IMAGE_BYTES_PER_PIXEL = &HDE8
Public Const IL_IMAGE_BITS_PER_PIXEL = &HDE9
Public Const IL_IMAGE_FORMAT = &HDEA
Public Const IL_IMAGE_TYPE = &HDEB
Public Const IL_PALETTE_TYPE = &HDEC
Public Const IL_PALETTE_SIZE = &HDED
Public Const IL_PALETTE_BPP = &HDEE
Public Const IL_PALETTE_NUM_COLS = &HDEF
Public Const IL_PALETTE_BASE_TYPE = &HDF0
Public Const IL_NUM_IMAGES = &HDF1
Public Const IL_NUM_MIPMAPS = &HDF2
Public Const IL_NUM_LAYERS = &HDF3
Public Const IL_ACTIVE_IMAGE = &HDF4
Public Const IL_ACTIVE_MIPMAP = &HDF5
Public Const IL_ACTIVE_LAYER = &HDF6
Public Const IL_CUR_IMAGE = &HDF7
Public Const IL_IMAGE_DURATION = &HDF8
Public Const IL_IMAGE_PLANESIZE = &HDF9
Public Const IL_IMAGE_BPC = &HDFA
Public Const IL_IMAGE_OFFX = &HDFB
Public Const IL_IMAGE_OFFY = &HDFC
Public Const IL_IMAGE_CUBEFLAGS = &HDFD
Public Const IL_SEEK_SET = 0
Public Const IL_SEEK_CUR = 1
Public Const IL_SEEK_END = 2
Public Const IL_EOF = -1
' ImageLib Functions
Public Declare Function ilActiveImage Lib "devil" (ByVal Number As Long) As Byte
Public Declare Function ilActiveLayer Lib "devil" (ByVal Number As Long) As Byte
Public Declare Function ilActiveMipmap Lib "devil" (ByVal Number As Long) As Byte
Public Declare Function ilApplyPal Lib "devil" (ByVal FileName As String) As Byte
Public Declare Function ilApplyProfile Lib "devil" (ByVal InProfile As String, ByVal OutProfile As String) As Byte
Public Declare Sub ilBindImage Lib "devil" (ByVal Image As Long)
Public Declare Function ilBlit Lib "devil" (ByVal Src As Long, ByVal DestX As Long, ByVal DestY As Long, ByVal DestZ As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal SrcZ As Long, ByVal width As Long, ByVal height As Long, ByVal Depth As Long) As Byte
Public Declare Sub ilClearColour Lib "devil" (ByVal Red As Single, ByVal Green As Single, ByVal Blue As Single, ByVal Alpha As Single)
Public Declare Function ilClearImage Lib "devil" () As Byte
Public Declare Function ilCloneCurImage Lib "devil" () As Long
Public Declare Function ilCompressFunc Lib "devil" (ByVal Mode As Long) As Byte
Public Declare Function ilConvertImage Lib "devil" (ByVal DestFormat As Long, ByVal DestType As Long) As Byte
Public Declare Function ilConvertPal Lib "devil" (ByVal DestFormat As Long) As Byte
Public Declare Function ilCopyImage Lib "devil" (ByVal Src As Long) As Byte
Public Declare Sub ilCopyPixels Lib "devil" (ByVal XOff As Long, ByVal YOff As Long, ByVal ZOff As Long, ByVal width As Long, ByVal height As Long, ByVal Depth As Long, ByVal OutFormat As Long, ByVal OutType As Long, ByRef OutData As Byte)
Public Declare Function ilCreateSubImage Lib "devil" (ByVal IType As Long, ByVal Num As Long) As Long
Public Declare Function ilDefaultImage Lib "devil" () As Boolean
Public Declare Sub ilDeleteImages Lib "devil" (ByVal Num As Long, ByRef Images As Long)
Public Declare Function ilDisable Lib "devil" (ByVal Mode As Long) As Byte
Public Declare Function ilEnable Lib "devil" (ByVal Mode As Long) As Byte
Public Declare Function ilFormatFunc Lib "devil" (ByVal Mode As Long) As Byte
Public Declare Sub ilGenImages Lib "devil" (ByVal Num As Long, ByRef Images As Long)
Public Declare Function ilGetBoolean Lib "devil" (ByVal Mode As Long) As Byte
Public Declare Sub ilGetBooleanv Lib "devil" (ByVal Mode As Long, ByRef Param As Byte)
Public Declare Function ilGetData Lib "devil" () As Long
Public Declare Function ilGetError Lib "devil" () As Long
Public Declare Function ilGetInteger Lib "devil" (ByVal Mode As Long) As Long
Public Declare Sub ilGetIntegerv Lib "devil" (ByVal Mode As Long, ByRef Param As Long)
Public Declare Function ilGetLumpPos Lib "devil" () As Long
Public Declare Function ilGetPalette Lib "devil" () As Long
Public Declare Function ilGetString Lib "devil" (StringName As Long) As Long
Public Declare Sub ilHint Lib "devil" (ByVal Target As Long, ByVal Mode As Long)
Public Declare Sub ilInit Lib "devil" ()
Public Declare Function ilIsDisabled Lib "devil" (ByVal Mode As Long) As Byte
Public Declare Function ilIsEnabled Lib "devil" (ByVal Mode As Long) As Byte
Public Declare Function ilIsImage Lib "devil" (ByVal Image As Long) As Byte
Public Declare Function ilIsValid Lib "devil" (ByVal IType As Long, ByVal FileName As String) As Byte
Public Declare Function ilIsValidF Lib "devil" (ByVal IType As Long, ByVal File As Long) As Byte
Public Declare Function ilIsValidL Lib "devil" (ByVal IType As Long, ByRef Lump As Byte, ByVal Size As Long) As Byte
Public Declare Sub ilKeyColour Lib "devil" (ByVal Red As Single, ByVal Green As Single, ByVal Blue As Single, ByVal Alpha As Single)
Public Declare Function ilLoad Lib "devil" (ByVal IType As Long, ByVal FileName As String) As Byte
Public Declare Function ilLoadF Lib "devil" (ByVal IType As Long, ByVal File As Long) As Byte
Public Declare Function ilLoadImage Lib "devil" (ByVal FileName As String) As Byte
Public Declare Function ilLoadL Lib "devil" (ByVal IType As Long, ByRef Lump As Byte, ByVal Size As Long)
Public Declare Function ilLoadPal Lib "devil" (ByVal FileName As String) As Byte
Public Declare Function ilOriginFunc Lib "devil" (ByVal Mode As Long) As Byte
Public Declare Function ilOverlayImage Lib "devil" (ByVal Src As Long, ByVal XCoord As Long, ByVal YCoord As Long, ByVal ZCoord As Long) As Byte
Public Declare Sub ilPopAttrib Lib "devil" ()
Public Declare Sub ilPushAttrib Lib "devil" (ByVal Bits As Long)
Public Declare Sub ilRegisterFormat Lib "devil" (ByVal Format As Long)
Public Declare Function ilRegisterLoad Lib "devil" (ByVal Ext As String, ByVal LoadProc As Long) As Byte
Public Declare Function ilRegisterMipNum Lib "devil" (ByVal Num As Long) As Byte
Public Declare Function ilRegisterNumImages Lib "devil" (ByVal Num As Long) As Byte
Public Declare Sub ilRegisterOrigin Lib "devil" (ByVal Origin As Long)
Public Declare Sub ilRegisterPal Lib "devil" (ByRef Pal As Byte, ByVal Size As Long, ByVal IType As Long)
Public Declare Function ilRegisterSave Lib "devil" (ByVal Ext As String, ByVal SaveProc As Long) As Byte
Public Declare Sub ilRegisterType Lib "devil" (ByVal IType As Long)
Public Declare Function ilRemoveLoad Lib "devil" (ByVal Ext As String) As Byte
Public Declare Function ilRemoveSave Lib "devil" (ByVal Ext As String) As Byte
Public Declare Sub ilResetRead Lib "devil" ()
Public Declare Sub ilResetWrite Lib "devil" ()
Public Declare Function ilSave Lib "devil" (ByVal IType As Long, ByVal FileName As String) As Byte
Public Declare Function ilSaveF Lib "devil" (ByVal IType As Long, ByVal File As Long) As Byte
Public Declare Function ilSaveImage Lib "devil" (ByVal FileName As String) As Byte
Public Declare Function ilSaveL Lib "devil" (ByVal IType As Long, ByRef Lump As Byte, ByVal Size As Long) As Byte
Public Declare Function ilSavePal Lib "devil" (ByVal FileName As String) As Byte
Public Declare Function ilSetData Lib "devil" (ByRef Data As Byte) As Byte
Public Declare Function ilSetDuration Lib "devil" (ByVal Duration As Long) As Byte
Public Declare Sub ilSetInteger Lib "devil" (ByVal Mode As Long, ByVal Param As Long)
Public Declare Sub ilSetPixels Lib "devil" (ByVal XOff As Long, ByVal YOff As Long, ByVal ZOff As Long, ByVal width As Long, ByVal height As Long, ByVal Depth As Long, ByVal Format As Long, ByVal IType As Long, ByRef Data As Byte)
Public Declare Sub ilSetRead Lib "devil" (ByVal fOpenRProc As Long, ByVal fCloseRProc As Long, ByVal fEofProc As Long, ByVal fGetcProc As Long, ByVal fReadProc As Long, ByVal fSeekRProc As Long, ByVal fTellRProc As Long)
Public Declare Sub ilSetString Lib "devil" (ByVal Mode As Long, ByVal FileName As String)
Public Declare Sub ilSetWrite Lib "devil" (ByVal fOpenWProc As Long, ByVal fCloseWProc As Long, ByVal fPutcProc As Long, ByVal fSeekWProc As Long, ByVal fTellWProc As Long, ByVal fWriteProc As Long)
Public Declare Function ilTexImage Lib "devil" (ByVal width As Long, ByVal height As Long, ByVal Depth As Long, ByVal Bpp As Byte, ByVal Format As Long, ByVal IType As Long, ByRef Data As Byte) As Byte
Public Declare Function ilTexImage0 Lib "devil" Alias "ilTexImage" (ByVal width As Long, ByVal height As Long, ByVal Depth As Long, ByVal Bpp As Byte, ByVal Format As Long, ByVal IType As Long, ByVal DataPointer As Long) As Byte
' used if you want to pass a NULL-pointer (zero).
Public Declare Function ilTypeFunc Lib "devil" (ByVal Mode As Long) As Byte
Public Declare Function ilLoadData Lib "devil" (ByVal FileName As String, ByVal width As Long, ByVal height As Long, ByVal Depth As Long, ByVal Bpp As Byte) As Byte
Public Declare Function ilLoadDataF Lib "devil" (ByVal File As Long, ByVal width As Long, ByVal height As Long, ByVal Depth As Long, ByVal Bpp As Byte) As Byte
Public Declare Function ilLoadDataL Lib "devil" (ByRef Lump As Long, ByVal Size As Long, ByVal width As Long, ByVal height As Long, ByVal Depth As Long, ByVal Bpp As Byte) As Byte
Public Declare Function ilSaveData Lib "devil" (ByVal FileName As String) As Byte
' For all those weirdos that spell "colour" without the 'u'.
Public Declare Sub ilClearColor Lib "devil" Alias "ilClearColour" (ByVal Red As Single, ByVal Green As Single, ByVal Blue As Single, ByVal Alpha As Single)
Public Declare Sub ilKeyColor Lib "devil" Alias "ilKeyColour" (ByVal Red As Single, ByVal Green As Single, ByVal Blue As Single, ByVal Alpha As Single)
@@ -0,0 +1,162 @@
Attribute VB_Name = "DevIL_manipulate"
'-----------------------------------------------------------------------------
'
' ImageLib Utility Sources
' Copyright (C) 2000-2002 by Denton Woods
' Converted from ilu.h by Rune Kock (rune@vupti.com)
' based on the earlier conversion by Timo Heister (Timo-Heister@gmx.de)
' Last modified: 22 June 2002, based on ilu.h dated 06/22/2002
'
' Filename: ilu.bas
'
' Description: The main include file for ILU
'
'-----------------------------------------------------------------------------
' I've converted the types as follows. I have not dared use user-defined types, as I
' don't know how VB handles them internally. This means, unfortunately, that the headers
' are less informative than the original. So refer to ilu.h to see the original types.
' ILenum long
' ILboolean byte
' ILbitfield long
' ILbyte byte
' ILshort integer
' ILint long
' ILsizei long
' ILubyte byte
' ILushort integer
' ILuint long
' ILfloat single
' ILclampf single
' ILdouble double
' ILclampd double
' ILvoid n/a
' ILHANDLE long
Option Explicit
Public Const ILU_VERSION_1_6_0 = 1
Public Const ILU_VERSION = 160
Public Const ILU_FILTER = &H2600
Public Const ILU_NEAREST = &H2601
Public Const ILU_LINEAR = &H2602
Public Const ILU_BILINEAR = &H2603
Public Const ILU_SCALE_BOX = &H2604
Public Const ILU_SCALE_TRIANGLE = &H2605
Public Const ILU_SCALE_BELL = &H2606
Public Const ILU_SCALE_BSPLINE = &H2607
Public Const ILU_SCALE_LANCZOS3 = &H2608
Public Const ILU_SCALE_MITCHELL = &H2609
' Error types
Public Const ILU_INVALID_ENUM = &H501
Public Const ILU_OUT_OF_MEMORY = &H502
Public Const ILU_INTERNAL_ERROR = &H504
Public Const ILU_INVALID_VALUE = &H505
Public Const ILU_ILLEGAL_OPERATION = &H506
Public Const ILU_INVALID_PARAM = &H509
' Values
Public Const ILU_PLACEMENT = &H700
Public Const ILU_LOWER_LEFT = &H701
Public Const ILU_LOWER_RIGHT = &H702
Public Const ILU_UPPER_LEFT = &H703
Public Const ILU_UPPER_RIGHT = &H704
Public Const ILU_CENTER = &H705
Public Const ILU_CONVOLUTION_MATRIX = &H710
Public Const ILU_VERSION_NUM = &HDE2
' Filters
Public Const ILU_FILTER_BLUR = &H803
Public Const ILU_FILTER_GAUSSIAN_3x3 = &H804
Public Const ILU_FILTER_GAUSSIAN_5X5 = &H805
Public Const ILU_FILTER_EMBOSS1 = &H807
Public Const ILU_FILTER_EMBOSS2 = &H808
Public Const ILU_FILTER_LAPLACIAN1 = &H80A
Public Const ILU_FILTER_LAPLACIAN2 = &H80B
Public Const ILU_FILTER_LAPLACIAN3 = &H80C
Public Const ILU_FILTER_LAPLACIAN4 = &H80D
Public Const ILU_FILTER_SHARPEN1 = &H80E
Public Const ILU_FILTER_SHARPEN2 = &H80F
Public Const ILU_FILTER_SHARPEN3 = &H810
Public Type ILinfo
ID As Long ' the image's id
DataPointer As Long ' pointer to the image's data (useless in VB)
width As Long ' the image's width
height As Long ' the image's height
Depth As Long ' the image's depth
Bpp As Byte ' bytes per pixel (not bits) of the image
SizeOfData As Long ' the total size of the data (in bytes)
Format As Long ' image format (in IL enum style)
IType As Long ' image type (in IL enum style)
Origin As Long ' origin of the image
PalettePointer As Long ' pointer to the image's palette (useless in VB)
PalType As Long ' palette type
PalSize As Long ' palette size
NumNext As Long ' number of images following
NumMips As Long ' number of mipmaps
NumLayers As Long ' number of layers
End Type
' ImageLib Utility Functions
Public Declare Function iluAlienify Lib "ilu" () As Byte
Public Declare Function iluBitFilter1 Lib "ilu" () As Byte
Public Declare Function iluBitFilter2 Lib "ilu" () As Byte
Public Declare Function iluBitFilter3 Lib "ilu" () As Byte
Public Declare Function iluBlurAvg Lib "ilu" (ByVal Iter As Long) As Byte
Public Declare Function iluBlurGaussian Lib "ilu" (ByVal Iter As Long) As Byte
Public Declare Function iluBuildMipmaps Lib "ilu" () As Byte
Public Declare Function iluColoursUsed Lib "ilu" () As Long
Public Declare Function iluCompareImage Lib "ilu" (ByVal Comp As Long) As Byte
Public Declare Function iluContrast Lib "ilu" (ByVal Contrast As Single) As Byte
Public Declare Function iluCrop Lib "ilu" (ByVal XOff As Long, ByVal YOff As Long, ByVal ZOff As Long, ByVal width As Long, ByVal height As Long, ByVal Depth As Long) As Byte
Public Declare Sub iluDeleteImage Lib "ilu" (ByVal ID As Long)
Public Declare Function iluEdgeDetectE Lib "ilu" () As Byte
Public Declare Function iluEdgeDetectP Lib "ilu" () As Byte
Public Declare Function iluEdgeDetectS Lib "ilu" () As Byte
Public Declare Function iluEmboss Lib "ilu" () As Byte
Public Declare Function iluEnlargeCanvas Lib "ilu" (ByVal width As Long, ByVal height As Long, ByVal Depth As Long) As Byte
Public Declare Function iluEnlargeImage Lib "ilu" (ByVal XDim As Single, ByVal YDim As Single, ByVal ZDim As Single) As Byte
Public Declare Function iluEqualize Lib "ilu" () As Byte
Public Declare Function iluErrorString Lib "ilu" (ByVal Error As Long) As Long
Public Declare Function iluFlipImage Lib "ilu" () As Byte
Public Declare Function iluGammaCorrect Lib "ilu" (ByVal Gamma As Single) As Byte
Public Declare Function iluGenImage Lib "ilu" () As Long
Public Declare Sub iluGetImageInfo Lib "ilu" (ByRef Info As ILinfo)
Public Declare Function iluGetInteger Lib "ilu" (ByVal Mode As Long) As Long
Public Declare Sub iluGetIntegerv Lib "ilu" (ByVal Mode As Long, ByRef Param As Long)
Public Declare Function iluGetString Lib "ilu" (ByVal StringName As Long) As Long
Public Declare Sub iluImageParameter Lib "ilu" (ByVal PName As Long, ByVal Param As Long)
Public Declare Sub iluInit Lib "ilu" ()
Public Declare Function iluLoadImage Lib "ilu" (ByVal FileName As String) As Long
Public Declare Function iluMirror Lib "ilu" () As Byte
Public Declare Function iluNegative Lib "ilu" () As Byte
Public Declare Function iluNoisify Lib "ilu" (ByVal Tolerance As Single) As Byte
Public Declare Function iluPixelize Lib "ilu" (ByVal PixSize As Long) As Byte
' Public Declare Sub iluRegionf Lib "ilu" (ByVal ULx As Single, ByVal ULy As Single, ByVal BRx As Single, ByVal BRy As Single)
' Public Declare Sub iluRegioni Lib "ilu" (ByVal ULx As Long, ByVal ULy As Long, ByVal BRx As Long, ByVal BRy As Long)
Public Declare Function iluReplaceColour Lib "ilu" (ByVal Red As Byte, ByVal Green As Byte, ByVal Blue As Byte, ByVal Tolerance As Single) As Byte
Public Declare Function iluRotate Lib "ilu" (ByVal Angle As Single) As Byte
Public Declare Function iluRotate3D Lib "ilu" (ByVal x As Single, ByVal y As Single, ByVal z As Single, ByVal Angle As Single) As Byte
Public Declare Function iluSaturate1f Lib "ilu" (ByVal Saturation As Single) As Byte
Public Declare Function iluSaturate4f Lib "ilu" (ByVal r As Single, ByVal g As Single, ByVal b As Single, ByVal Saturation As Single) As Byte
Public Declare Function iluScale Lib "ilu" (ByVal width As Long, ByVal height As Long, ByVal Depth As Long) As Byte
Public Declare Function iluScaleColours Lib "ilu" (ByVal r As Single, ByVal g As Single, ByVal b As Single) As Byte
Public Declare Function iluSharpen Lib "ilu" (ByVal Factor As Single, ByVal Iter As Long) As Byte
Public Declare Function iluSwapColours Lib "ilu" () As Byte
Public Declare Function iluWave Lib "ilu" (ByVal Angle As Single) As Byte
Public Declare Function iluColorsUsed Lib "ilu" Alias "iluColoursUsed" () As Long
Public Declare Function iluSwapColors Lib "ilu" Alias "iluSwapColours" () As Byte
Public Declare Function iluReplaceColor Lib "ilu" Alias "iluReplaceColour" (ByVal Red As Byte, ByVal Green As Byte, ByVal Blue As Byte, ByVal Tolerance As Single) As Byte
Public Declare Function iluScaleColors Lib "ilu" Alias "iluScaleColours" (ByVal r As Single, ByVal g As Single, ByVal b As Single) As Byte
@@ -0,0 +1,156 @@
Attribute VB_Name = "Module3"
'-----------------------------------------------------------------------------
'
' ImageLib Utility Toolkit Sources
' Copyright (C) 2000-2002 by Denton Woods
' Converted from ilut.h by Rune Kock (rune@vupti.com)
' based on the earlier conversion by Timo Heister (Timo-Heister@gmx.de)
' Last modified: 22 June 2002, based on ilut.h dated 06/22/2002
'
' Filename: ilut.bas
'
' Description: The main include file for ILUT
'
'-----------------------------------------------------------------------------
' I've converted the types as follows. I have not dared use user-defined types, as I
' don't know how VB handles them internally. This means, unfortunately, that the headers
' are less informative than the original. So refer to ilut.h to see the original types.
' ILenum long
' ILboolean byte
' ILbitfield long
' ILbyte byte
' ILshort integer
' ILint long
' ILsizei long
' ILubyte byte
' ILushort integer
' ILuint long
' ILfloat single
' ILclampf single
' ILdouble double
' ILclampd double
' ILvoid n/a
' <all Windows handles> integer
Option Explicit
Public Const ILUT_VERSION_1_6_0 = 1
Public Const ILUT_VERSION = 160
' Attribute Bits
Public Const ILUT_OPENGL_BIT = &H1
Public Const ILUT_D3D_BIT = &H2
Public Const ILUT_ALL_ATTRIB_BITS = &HFFFFF
' Error Types
Public Const ILUT_INVALID_ENUM = &H501
Public Const ILUT_OUT_OF_MEMORY = &H502
Public Const ILUT_INVALID_VALUE = &H505
Public Const ILUT_ILLEGAL_OPERATION = &H506
Public Const ILUT_INVALID_PARAM = &H509
Public Const ILUT_COULD_NOT_OPEN_FILE = &H50A
Public Const ILUT_STACK_OVERFLOW = &H50E
Public Const ILUT_STACK_UNDERFLOW = &H50F
Public Const ILUT_NOT_SUPPORTED = &H550
' State Definitions
Public Const ILUT_PALETTE_MODE = &H600
Public Const ILUT_OPENGL_CONV = &H610
Public Const ILUT_D3D_MIPLEVELS = &H620
Public Const ILUT_MAXTEX_WIDTH = &H630
Public Const ILUT_MAXTEX_HEIGHT = &H631
Public Const ILUT_MAXTEX_DEPTH = &H632
Public Const ILUT_GL_USE_S3TC = &H634
Public Const ILUT_D3D_USE_DXTC = &H634
Public Const ILUT_GL_GEN_S3TC = &H635
Public Const ILUT_D3D_GEN_DXTC = &H635
Public Const ILUT_S3TC_FORMAT = &H705
Public Const ILUT_DXTC_FORMAT = &H706
' Values
Public Const ILUT_VERSION_NUM = &HDE2
' ImageLib Utility Toolkit Functions
Public Declare Function ilutDisable Lib "ilut" (ByVal Mode As Long) As Byte
Public Declare Function ilutEnable Lib "ilut" (ByVal Mode As Long) As Byte
Public Declare Function ilutGetBoolean Lib "ilut" (ByVal Mode As Long) As Byte
Public Declare Sub ilutGetBooleanv Lib "ilut" (ByVal Mode As Long, ByRef Param As Byte)
Public Declare Function ilutGetInteger Lib "ilut" (ByVal Mode As Long) As Long
Public Declare Sub ilutGetIntegerv Lib "ilut" (ByVal Mode As Long, ByRef Param As Long)
Public Declare Function ilutGetString Lib "ilut" (ByVal StringName As Long) As Long
Public Declare Sub ilutInit Lib "ilut" ()
Public Declare Function ilutIsDisabled Lib "ilut" (ByVal Mode As Long) As Byte
Public Declare Function ilutIsEnabled Lib "ilut" (ByVal Mode As Long) As Byte
Public Declare Sub ilutPopAttrib Lib "ilut" ()
Public Declare Sub ilutPushAttrib Lib "ilut" (ByVal Bits As Long)
Public Declare Sub ilutSetInteger Lib "ilut" (ByVal Mode As Long, ByVal Param As Long)
Public Const ILUT_USE_ALLEGRO = False
Public Const ILUT_USE_WIN32 = True
Public Const ILUT_USE_OPENGL = True
' The different rendering api's...more to be added later?
Public Const ILUT_OPENGL = 0
Public Const ILUT_ALLEGRO = 1
Public Const ILUT_WIN32 = 2
Public Declare Function ilutRenderer Lib "ilut" (ByVal Renderer As Long) As Byte
' ImageLib Utility Toolkit's OpenGL Functions
Public Declare Function ilutGLBindTexImage Lib "ilut" () As Long
Public Declare Function ilutGLBindMipmaps Lib "ilut" () As Long
Public Declare Function ilutGLBuildMipmaps Lib "ilut" () As Byte
Public Declare Function ilutGLLoadImage Lib "ilut" (ByVal FileName As String) As Long
Public Declare Function ilutGLScreen Lib "ilut" () As Byte
Public Declare Function ilutGLScreenie Lib "ilut" () As Byte
Public Declare Function ilutGLSaveImage Lib "ilut" (ByVal FileName As String, ByVal TexID As Long) As Byte
Public Declare Function ilutGLSetTex Lib "ilut" (ByVal TexID As Long) As Byte
Public Declare Function ilutGLTexImage Lib "ilut" (ByVal Level As Long) As Byte
' Allegro and BeOS are probably irrelevant for VB, so they are left out...
' ImageLib Utility Toolkit's Win32 (DirectX/GDI) Functions
Public Declare Function ilutConvertToHBitmap Lib "ilut" (ByVal hDC As Integer) As Integer
' Public Declare Sub ilutGetBmpInfo Lib "ilut" (ByRef Info As BITMAPINFO)
' (The BITMAPINFO structure can probably not be ported to VB).
Public Declare Function ilutGetHPal Lib "ilut" () As Integer
Public Declare Function ilutGetPaddedData Lib "ilut" () As Long
Public Declare Function ilutGetWinClipboard Lib "ilut" () As Byte
Public Declare Function ilutLoadResource Lib "ilut" (ByVal hInst As Integer, ByVal ID As Long, ByVal ResourceType As String, ByVal IType As Long) As Byte
Public Declare Function ilutSetHBitmap Lib "ilut" (ByVal Bitmap As Integer) As Byte
Public Declare Function ilutSetHPal Lib "ilut" (ByVal Pal As Integer) As Byte
Public Declare Function ilutSetWinClipboard Lib "ilut" () As Byte
Public Declare Function ilutWinLoadImage Lib "ilut" (ByVal FileName As String, ByVal hDC As Integer) As Integer
Public Declare Function ilutWinLoadUrl Lib "ilut" (ByVal Url As String) As Byte
Public Declare Function ilutWinSaveImage Lib "ilut" (ByVal FileName As String, ByVal Bitmap As Integer) As Byte
' The DirectX 8 functions below might not be compiled into the DLL, so I've not
' bothered figuring out whether VB can be fooled into handling all those pointers.
' ILAPI ILvoid ILAPIENTRY ilutD3D8MipFunc(ILuint NumLevels);
' ILAPI IDirect3DTexture8* ILAPIENTRY ilutD3D8Texture(IDirect3DDevice8 *Device);
' ILAPI IDirect3DVolumeTexture8* ILAPIENTRY ilutD3D8VolumeTexture(IDirect3DDevice8 *Device);
' ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromFile(IDirect3DDevice8 *Device, char *FileName, IDirect3DTexture8 **Texture);
' ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromFile(IDirect3DDevice8 *Device, char *FileName, IDirect3DVolumeTexture8 **Texture);
' ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromFileInMemory(IDirect3DDevice8 *Device, ILvoid *Lump, ILuint Size, IDirect3DTexture8 **Texture);
' ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromFileInMemory(IDirect3DDevice8 *Device, ILvoid *Lump, ILuint Size, IDirect3DVolumeTexture8 **Texture);
' ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromFileHandle(IDirect3DDevice8 *Device, ILHANDLE File, IDirect3DTexture8 **Texture);
' ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromFileHandle(IDirect3DDevice8 *Device, ILHANDLE File, IDirect3DVolumeTexture8 **Texture);
' // These two are not tested yet.
' ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromResource(IDirect3DDevice8 *Device, HMODULE SrcModule, char *SrcResource, IDirect3DTexture8 **Texture);
' ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromResource(IDirect3DDevice8 *Device, HMODULE SrcModule, char *SrcResource, IDirect3DVolumeTexture8 **Texture);
'
' ILAPI ILboolean ILAPIENTRY ilutD3D8LoadSurface(IDirect3DDevice8 *Device, IDirect3DSurface8 *Surface);