mirror of
https://github.com/love2d/love-android.git
synced 2026-08-15 15:51:20 +02:00
86 lines
2.7 KiB
Plaintext
86 lines
2.7 KiB
Plaintext
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) |