1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 module derelict.devil.il; 29 30 private { 31 import derelict.util.loader; 32 import derelict.util.system; 33 34 static if(Derelict_OS_Windows) 35 enum libNames = "devil.dll"; 36 else static if (Derelict_OS_Mac) 37 enum libNames = "libIL.dylib"; 38 else static if(Derelict_OS_Posix) 39 enum libNames = "libIL.so"; 40 else 41 static assert(0, "Need to implement DevIL libNames for this operating system."); 42 } 43 44 alias ILenum = uint; 45 alias ILboolean = ubyte; 46 alias ILbitfield = uint; 47 alias ILbyte = byte; 48 alias ILshort = short; 49 alias ILint = int; 50 alias ILsizei = size_t; 51 alias ILubyte = ubyte; 52 alias ILushort = ushort; 53 alias ILuint = uint; 54 alias ILfloat = float; 55 alias ILclampf = float; 56 alias ILdouble = double; 57 alias ILclampd = double; 58 alias ILint64 = long; 59 alias ILuint64 = ulong; 60 61 version(DerelictIL_Unicode) { 62 alias ILchar = wchar; 63 alias ILstring = wchar*; 64 alias ILconst_string = const(wchar)*; 65 } 66 else { 67 alias ILchar = char; 68 alias ILstring = char*; 69 alias ILconst_string = const(char)*; 70 } 71 72 enum : ILboolean { 73 IL_FALSE=0, 74 IL_TRUE=1, 75 } 76 77 enum : ILenum { 78 IL_COLOUR_INDEX = 0x1900, 79 IL_COLOR_INDEX = 0x1900, 80 IL_RGB = 0x1907, 81 IL_RGBA = 0x1908, 82 IL_BGR = 0x80E0, 83 IL_BGRA = 0x80E1, 84 IL_LUMINANCE = 0x1909, 85 IL_LUMINANCE_ALPHA = 0x190A, 86 87 IL_BYTE = 0x1400, 88 IL_UNSIGNED_BYTE = 0x1401, 89 IL_SHORT = 0x1402, 90 IL_UNSIGNED_SHORT = 0x1403, 91 IL_INT = 0x1404, 92 IL_UNSIGNED_INT = 0x1405, 93 IL_FLOAT = 0x1406, 94 IL_DOUBLE = 0x140A, 95 IL_HALF = 0x140B, 96 97 IL_MAX_BYTE = byte.max, 98 IL_MAX_UNSIGNED_BYTE = ubyte.max, 99 IL_MAX_SHORT = short.max, 100 IL_MAX_UNSIGNED_SHORT = ushort.max, 101 IL_MAX_INT = int.max, 102 IL_MAX_UNSIGNED_INT = uint.max, 103 104 IL_VENDOR = 0x1F00, 105 IL_LOAD_EXT = 0x1F01, 106 IL_SAVE_EXT = 0x1F02, 107 108 IL_VERSION_1_8_0 = 1, 109 IL_VERSION = 180, 110 111 IL_ORIGIN_BIT = 0x00000001, 112 IL_FILE_BIT = 0x00000002, 113 IL_PAL_BIT = 0x00000004, 114 IL_FORMAT_BIT = 0x00000008, 115 IL_TYPE_BIT = 0x00000010, 116 IL_COMPRESS_BIT = 0x00000020, 117 IL_LOADFAIL_BIT = 0x00000040, 118 IL_FORMAT_SPECIFIC_BIT = 0x00000080, 119 IL_ALL_ATTRIB_BITS = 0x000FFFFF, 120 121 IL_PAL_NONE = 0x0400, 122 IL_PAL_RGB24 = 0x0401, 123 IL_PAL_RGB32 = 0x0402, 124 IL_PAL_RGBA32 = 0x0403, 125 IL_PAL_BGR24 = 0x0404, 126 IL_PAL_BGR32 = 0x0405, 127 IL_PAL_BGRA32 = 0x0406, 128 129 IL_TYPE_UNKNOWN = 0x0000, 130 IL_BMP = 0x0420, 131 IL_CUT = 0x0421, 132 IL_DOOM = 0x0422, 133 IL_DOOM_FLAT = 0x0423, 134 IL_ICO = 0x0424, 135 IL_JPG = 0x0425, 136 IL_JFIF = 0x0425, 137 IL_ILBM = 0x0426, 138 IL_PCD = 0x0427, 139 IL_PCX = 0x0428, 140 IL_PIC = 0x0429, 141 IL_PNG = 0x042A, 142 IL_PNM = 0x042B, 143 IL_SGI = 0x042C, 144 IL_TGA = 0x042D, 145 IL_TIF = 0x042E, 146 IL_CHEAD = 0x042F, 147 IL_RAW = 0x0430, 148 IL_MDL = 0x0431, 149 IL_WAL = 0x0432, 150 IL_LIF = 0x0434, 151 IL_MNG = 0x0435, 152 IL_JNG = 0x0435, 153 IL_GIF = 0x0436, 154 IL_DDS = 0x0437, 155 IL_DCX = 0x0438, 156 IL_PSD = 0x0439, 157 IL_EXIF = 0x043A, 158 IL_PSP = 0x043B, 159 IL_PIX = 0x043C, 160 IL_PXR = 0x043D, 161 IL_XPM = 0x043E, 162 IL_HDR = 0x043F, 163 IL_ICNS = 0x0440, 164 IL_JP2 = 0x0441, 165 IL_EXR = 0x0442, 166 IL_WDP = 0x0443, 167 IL_VTF = 0x0444, 168 IL_WBMP = 0x0445, 169 IL_SUN = 0x0446, 170 IL_IFF = 0x0447, 171 IL_TPL = 0x0448, 172 IL_FITS = 0x0449, 173 IL_DICOM = 0x044A, 174 IL_IWI = 0x044B, 175 IL_BLP = 0x044C, 176 IL_FTX = 0x044D, 177 IL_ROT = 0x44E, 178 IL_TEXTURE = 0x44F, 179 IL_DPX = 0x450, 180 IL_UTX = 0x451, 181 IL_MP3 = 0x0452, 182 IL_KTX = 0x0453, 183 184 IL_JASC_PAL = 0x0475, 185 186 IL_NO_ERROR = 0x0000, 187 IL_INVALID_ENUM = 0x0501, 188 IL_OUT_OF_MEMORY = 0x0502, 189 IL_FORMAT_NOT_SUPPORTED = 0x0503, 190 IL_INTERNAL_ERROR = 0x0504, 191 IL_INVALID_VALUE = 0x0505, 192 IL_ILLEGAL_OPERATION = 0x0506, 193 IL_ILLEGAL_FILE_VALUE = 0x0507, 194 IL_INVALID_FILE_HEADER = 0x0508, 195 IL_INVALID_PARAM = 0x0509, 196 IL_COULD_NOT_OPEN_FILE = 0x050A, 197 IL_INVALID_EXTENSION = 0x050B, 198 IL_FILE_ALREADY_EXISTS = 0x050C, 199 IL_OUT_FORMAT_SAME = 0x050D, 200 IL_STACK_OVERFLOW = 0x050E, 201 IL_STACK_UNDERFLOW = 0x050F, 202 IL_INVALID_CONVERSION = 0x0510, 203 IL_BAD_DIMENSIONS = 0x0511, 204 IL_FILE_READ_ERROR = 0x0512, 205 IL_FILE_WRITE_ERROR = 0x0512, 206 207 IL_LIB_GIF_ERROR = 0x05E1, 208 IL_LIB_JPEG_ERROR = 0x05E2, 209 IL_LIB_PNG_ERROR = 0x05E3, 210 IL_LIB_TIFF_ERROR = 0x05E4, 211 IL_LIB_MNG_ERROR = 0x05E5, 212 IL_LIB_JP2_ERROR = 0x05E6, 213 IL_UNKNOWN_ERROR = 0x05FF, 214 215 IL_ORIGIN_SET = 0x0600, 216 IL_ORIGIN_LOWER_LEFT = 0x0601, 217 IL_ORIGIN_UPPER_LEFT = 0x0602, 218 IL_ORIGIN_MODE = 0x0603, 219 220 IL_FORMAT_SET = 0x0610, 221 IL_FORMAT_MODE = 0x0611, 222 IL_TYPE_SET = 0x0612, 223 IL_TYPE_MODE = 0x0613, 224 225 IL_FILE_OVERWRITE = 0x0620, 226 IL_FILE_MODE = 0x0621, 227 228 IL_CONV_PAL = 0x0630, 229 230 IL_DEFAULT_ON_FAIL = 0x0632, 231 232 IL_USE_KEY_COLOUR = 0x0635, 233 IL_USE_KEY_COLOR = 0x0635, 234 IL_BLIT_BLEND = 0x0636, 235 236 IL_SAVE_INTERLACED = 0x0639, 237 IL_INTERLACE_MODE = 0x063A, 238 239 IL_QUANTIZATION_MODE = 0x0640, 240 IL_WU_QUANT = 0x0641, 241 IL_NEU_QUANT = 0x0642, 242 IL_NEU_QUANT_SAMPLE = 0x0643, 243 IL_MAX_QUANT_INDEXS = 0x0644, 244 IL_MAX_QUANT_INDICES = 0x0644, 245 246 IL_FASTEST = 0x0660, 247 IL_LESS_MEM = 0x0661, 248 IL_DONT_CARE = 0x0662, 249 IL_MEM_SPEED_HINT = 0x0665, 250 IL_USE_COMPRESSION = 0x0666, 251 IL_NO_COMPRESSION = 0x0667, 252 IL_COMPRESSION_HINT = 0x0668, 253 254 IL_NVIDIA_COMPRESS = 0x0670, 255 IL_SQUISH_COMPRESS = 0x0671, 256 257 IL_SUB_NEXT = 0x0680, 258 IL_SUB_MIPMAP = 0x0681, 259 IL_SUB_LAYER = 0x0682, 260 261 IL_COMPRESS_MODE = 0x0700, 262 IL_COMPRESS_NONE = 0x0701, 263 IL_COMPRESS_RLE = 0x0702, 264 IL_COMPRESS_LZO = 0x0703, 265 IL_COMPRESS_ZLIB = 0x0704, 266 267 IL_TGA_CREATE_STAMP = 0x0710, 268 IL_JPG_QUALITY = 0x0711, 269 IL_PNG_INTERLACE = 0x0712, 270 IL_TGA_RLE = 0x0713, 271 IL_BMP_RLE = 0x0714, 272 IL_SGI_RLE = 0x0715, 273 IL_TGA_ID_STRING = 0x0717, 274 IL_TGA_AUTHNAME_STRING = 0x0718, 275 IL_TGA_AUTHCOMMENT_STRING = 0x0719, 276 IL_PNG_AUTHNAME_STRING = 0x071A, 277 IL_PNG_TITLE_STRING = 0x071B, 278 IL_PNG_DESCRIPTION_STRING = 0x071C, 279 IL_TIF_DESCRIPTION_STRING = 0x071D, 280 IL_TIF_HOSTCOMPUTER_STRING = 0x071E, 281 IL_TIF_DOCUMENTNAME_STRING = 0x071F, 282 IL_TIF_AUTHNAME_STRING = 0x0720, 283 IL_JPG_SAVE_FORMAT = 0x0721, 284 IL_CHEAD_HEADER_STRING = 0x0722, 285 IL_PCD_PICNUM = 0x0723, 286 IL_PNG_ALPHA_INDEX = 0x0724, 287 IL_JPG_PROGRESSIVE = 0x0725, 288 IL_VTF_COMP = 0x0726, 289 290 IL_DXTC_FORMAT = 0x0705, 291 IL_DXT1 = 0x0706, 292 IL_DXT2 = 0x0707, 293 IL_DXT3 = 0x0708, 294 IL_DXT4 = 0x0709, 295 IL_DXT5 = 0x070A, 296 IL_DXT_NO_COMP = 0x070B, 297 IL_KEEP_DXTC_DATA = 0x070C, 298 IL_DXTC_DATA_FORMAT = 0x070D, 299 IL_3DC = 0x070E, 300 IL_RXGB = 0x070F, 301 IL_ATI1N = 0x0710, 302 IL_DXT1A = 0x0711, 303 304 IL_CUBEMAP_POSITIVEX = 0x00000400, 305 IL_CUBEMAP_NEGATIVEX = 0x00000800, 306 IL_CUBEMAP_POSITIVEY = 0x00001000, 307 IL_CUBEMAP_NEGATIVEY = 0x00002000, 308 IL_CUBEMAP_POSITIVEZ = 0x00004000, 309 IL_CUBEMAP_NEGATIVEZ = 0x00008000, 310 IL_SPHEREMAP = 0x00010000, 311 312 IL_VERSION_NUM = 0x0DE2, 313 IL_IMAGE_WIDTH = 0x0DE4, 314 IL_IMAGE_HEIGHT = 0x0DE5, 315 IL_IMAGE_DEPTH = 0x0DE6, 316 IL_IMAGE_SIZE_OF_DATA = 0x0DE7, 317 IL_IMAGE_BPP = 0x0DE8, 318 IL_IMAGE_BYTES_PER_PIXEL = 0x0DE8, 319 IL_IMAGE_BITS_PER_PIXEL = 0x0DE9, 320 IL_IMAGE_FORMAT = 0x0DEA, 321 IL_IMAGE_TYPE = 0x0DEB, 322 IL_PALETTE_TYPE = 0x0DEC, 323 IL_PALETTE_SIZE = 0x0DED, 324 IL_PALETTE_BPP = 0x0DEE, 325 IL_PALETTE_NUM_COLS = 0x0DEF, 326 IL_PALETTE_BASE_TYPE = 0x0DF0, 327 IL_NUM_FACES = 0x0DE1, 328 IL_NUM_IMAGES = 0x0DF1, 329 IL_NUM_MIPMAPS = 0x0DF2, 330 IL_NUM_LAYERS = 0x0DF3, 331 IL_ACTIVE_IMAGE = 0x0DF4, 332 IL_ACTIVE_MIPMAP = 0x0DF5, 333 IL_ACTIVE_LAYER = 0x0DF6, 334 IL_ACTIVE_FACE = 0x0E00, 335 IL_CUR_IMAGE = 0x0DF7, 336 IL_IMAGE_DURATION = 0x0DF8, 337 IL_IMAGE_PLANESIZE = 0x0DF9, 338 IL_IMAGE_BPC = 0x0DFA, 339 IL_IMAGE_OFFX = 0x0DFB, 340 IL_IMAGE_OFFY = 0x0DFC, 341 IL_IMAGE_CUBEFLAGS = 0x0DFD, 342 IL_IMAGE_ORIGIN = 0x0DFE, 343 IL_IMAGE_CHANNELS = 0x0DFF, 344 } 345 346 enum : ILint { 347 IL_SEEK_SET = 0, 348 IL_SEEK_CUR = 1, 349 IL_SEEK_END = 2, 350 IL_EOF = 1, 351 } 352 353 alias ILHANDLE = void*; 354 355 // Callbacks 356 extern(System) nothrow { 357 alias fCloseRProc = void function(ILHANDLE); 358 alias fEofProc = ILboolean function(ILHANDLE); 359 alias fGetcProc = ILint function(ILHANDLE); 360 alias fOpenRProc = ILHANDLE function(ILconst_string); 361 alias fReadProc = ILint function(void*,ILuint,ILuint,ILHANDLE); 362 alias fSeekRProc = ILint function(ILHANDLE,ILint,ILint); 363 alias fTellRProc = ILint function(ILHANDLE); 364 365 alias fCloseWProc = void function(ILHANDLE); 366 alias fOpenWProc = ILHANDLE function(ILconst_string); 367 alias fPutcProc = ILint function(ILubyte,ILHANDLE); 368 alias fSeekWProc = ILint function(ILHANDLE,ILint,ILint); 369 alias fTellWProc = ILint function(ILHANDLE); 370 alias fWriteProc = ILint function(const(void)*,ILuint,ILuint,ILHANDLE); 371 372 alias mAlloc = void* function(const(ILsizei)); 373 alias mFree = void function(const(void)*); 374 375 alias IL_LOADPROC = ILenum function(ILconst_string); 376 alias IL_SAVEPROC = ILenum function(ILconst_string); 377 } 378 379 // API 380 extern(System) @nogc nothrow { 381 alias da_ilActiveFace = ILboolean function(ILuint); 382 alias da_ilActiveImage = ILboolean function(ILuint); 383 alias da_ilActiveLayer = ILboolean function(ILuint); 384 alias da_ilActiveMipmap = ILboolean function(ILuint); 385 alias da_ilApplyPal = ILboolean function(ILconst_string); 386 alias da_ilApplyProfile = ILboolean function(ILstring,ILstring); 387 alias da_ilBindImage = void function(ILuint); 388 alias da_ilBlit = ILboolean function(ILuint,ILint,ILint,ILint,ILuint,ILuint,ILuint,ILuint,ILuint,ILuint); 389 alias da_ilClampNTSC = ILboolean function(); 390 alias da_ilClearColour = void function(ILclampf,ILclampf,ILclampf,ILclampf); 391 alias da_ilClearImage = ILboolean function(); 392 alias da_ilCloneCurImage = ILuint function(); 393 alias da_ilCompressDXT = ILubyte* function(ILubyte*,ILuint,ILuint,ILuint,ILenum,ILuint*); 394 alias da_ilCompressFunc = ILboolean function(ILenum); 395 alias da_ilConvertImage = ILboolean function(ILenum,ILenum); 396 alias da_ilConvertPal = ILboolean function(ILenum); 397 alias da_ilCopyImage = ILboolean function(ILuint); 398 alias da_ilCopyPixels = ILuint function(ILuint,ILuint,ILuint,ILuint,ILuint,ILuint,ILenum,ILenum,void*); 399 alias da_ilCreateSubImage = ILuint function(ILenum,ILuint); 400 alias da_ilDefaultImage = ILboolean function(); 401 alias da_ilDeleteImage = void function(ILuint); 402 alias da_ilDeleteImages = void function(ILsizei,in ILuint*); 403 alias da_ilDetermineType = ILenum function(ILconst_string); 404 alias da_ilDetermineTypeF = ILenum function(ILHANDLE); 405 alias da_ilDetermineTypeL = ILenum function(const(void)*,ILuint); 406 alias da_ilDisable = ILboolean function(ILenum); 407 alias da_ilDxtcDataToImage = ILboolean function(); 408 alias da_ilDxtcDataToSurface = ILboolean function(); 409 alias da_ilEnable = ILboolean function(ILenum); 410 //alias da_ilFlipSurfaceDxtcData = void function(); 411 alias da_ilFormatFunc = ILboolean function(ILenum); 412 alias da_ilGenImages = void function(ILsizei,ILuint*); 413 alias da_ilGenImage = ILuint function(); 414 alias da_ilGetAlpha = ILubyte* function(ILenum); 415 alias da_ilGetBoolean = ILboolean function(ILenum); 416 alias da_ilGetBooleanv = void function(ILenum,ILboolean*); 417 alias da_ilGetData = ILubyte* function(); 418 alias da_ilGetDXTCData = ILuint function(void*,ILuint,ILenum); 419 alias da_ilGetError = ILenum function(); 420 alias da_ilGetInteger = ILint function(ILenum); 421 alias da_ilGetIntegerv = void function(ILenum,ILint*); 422 alias da_ilGetLumpPos = ILuint function(); 423 alias da_ilGetPalette = ILubyte* function(); 424 alias da_ilGetString = ILstring function(ILenum); 425 alias da_ilHint = void function(ILenum,ILenum); 426 alias da_ilInit = void function(); 427 alias da_ilImageToDxtcData = ILboolean function(ILenum); 428 alias da_ilIsDisabled = ILboolean function(ILenum); 429 alias da_ilIsEnabled = ILboolean function(ILenum); 430 alias da_ilIsImage = ILboolean function(ILuint); 431 alias da_ilIsValid = ILboolean function(ILenum,ILstring); 432 alias da_ilIsValidF = ILboolean function(ILenum,ILHANDLE); 433 alias da_ilIsValidL = ILboolean function(ILenum,void*,ILuint); 434 alias da_ilKeyColour = void function(ILclampf,ILclampf,ILclampf,ILclampf); 435 alias da_ilLoad = ILboolean function(ILenum,ILconst_string); 436 alias da_ilLoadF = ILboolean function(ILenum,ILHANDLE); 437 alias da_ilLoadImage = ILboolean function(ILconst_string); 438 alias da_ilLoadL = ILboolean function(ILenum,in void*,ILuint); 439 alias da_ilLoadPal = ILboolean function(ILconst_string); 440 alias da_ilModAlpha = void function(ILdouble); 441 alias da_ilOriginFunc = ILboolean function(ILenum); 442 alias da_ilOverlayImage = ILboolean function(ILuint,ILint,ILint,ILint); 443 alias da_ilPopAttrib = void function(); 444 alias da_ilPushAttrib = void function(ILuint); 445 alias da_ilRegisterFormat = void function(ILenum); 446 alias da_ilRegisterLoad = ILboolean function(ILconst_string,IL_LOADPROC); 447 alias da_ilRegisterMipNum = ILboolean function(ILuint); 448 alias da_ilRegisterNumImages = ILboolean function(ILuint); 449 alias da_ilRegisterOrigin = void function(ILenum); 450 alias da_ilRegisterPal = void function(void*,ILuint,ILenum); 451 alias da_ilRegisterSave = ILboolean function(ILconst_string,IL_SAVEPROC); 452 alias da_ilRegisterType = void function(ILenum); 453 alias da_ilRemoveLoad = ILboolean function(ILconst_string); 454 alias da_ilRemoveSave = ILboolean function(ILconst_string); 455 alias da_ilResetRead = void function(); 456 alias da_ilResetWrite = void function(); 457 alias da_ilSave = ILboolean function(ILenum,ILconst_string); 458 alias da_ilSaveF = ILuint function(ILenum,ILHANDLE); 459 alias da_ilSaveImage = ILboolean function(ILconst_string); 460 alias da_ilSaveL = ILuint function(ILenum,void*,ILuint); 461 alias da_ilSavePal = ILboolean function(ILconst_string); 462 alias da_ilSetAlpha = ILboolean function(ILdouble); 463 alias da_ilSetData = ILboolean function(void*); 464 alias da_ilSetDuration = ILboolean function(ILuint); 465 alias da_ilSetInteger = void function(ILenum,ILint); 466 alias da_ilSetMemory = void function(mAlloc,mFree); 467 alias da_ilSetPixels = void function(ILint,ILint,ILint,ILuint,ILuint,ILuint,ILenum,ILenum,void*); 468 alias da_ilSetRead = void function(fOpenRProc,fCloseRProc,fEofProc,fGetcProc,fReadProc,fSeekRProc,fTellRProc); 469 alias da_ilSetString = void function(ILenum,in char*); 470 alias da_ilSetWrite = void function(fOpenWProc,fCloseWProc,fPutcProc,fSeekWProc,fTellWProc,fWriteProc); 471 alias da_ilShutDown = void function(); 472 alias da_ilSurfaceToDxtcData = ILboolean function(ILenum); 473 alias da_ilTexImage = ILboolean function(ILuint,ILuint,ILuint,ILubyte,ILenum,ILenum,void*); 474 alias da_ilTexImageDxtc = ILboolean function(ILint,ILuint,ILuint,ILubyte,ILenum,ILenum,void*); 475 alias da_ilTypeFromExt = ILenum function(ILconst_string); 476 alias da_ilTypeFunc = ILboolean function(ILenum); 477 alias da_ilLoadData = ILboolean function(ILconst_string,ILuint,ILuint,ILuint,ILubyte); 478 alias da_ilLoadDataF = ILboolean function(ILHANDLE,ILuint,ILuint,ILuint,ILubyte); 479 alias da_ilLoadDataL = ILboolean function(void*,ILuint,ILuint,ILuint,ILuint,ILubyte); 480 alias da_ilSaveData = ILboolean function(ILconst_string); 481 } 482 483 __gshared { 484 da_ilActiveFace ilActiveFace; 485 da_ilActiveImage ilActiveImage; 486 da_ilActiveLayer ilActiveLayer; 487 da_ilActiveMipmap ilActiveMipmap; 488 da_ilApplyPal ilApplyPal; 489 da_ilApplyProfile ilApplyProfile; 490 da_ilBindImage ilBindImage; 491 da_ilBlit ilBlit; 492 da_ilClampNTSC ilClampNTSC; 493 da_ilClearColour ilClearColour; 494 da_ilClearImage ilClearImage; 495 da_ilCloneCurImage ilCloneCurImage; 496 da_ilCompressDXT ilCompressDXT; 497 da_ilCompressFunc ilCompressFunc; 498 da_ilConvertImage ilConvertImage; 499 da_ilConvertPal ilConvertPal; 500 da_ilCopyImage ilCopyImage; 501 da_ilCopyPixels ilCopyPixels; 502 da_ilCreateSubImage ilCreateSubImage; 503 da_ilDefaultImage ilDefaultImage; 504 da_ilDeleteImage ilDeleteImage; 505 da_ilDeleteImages ilDeleteImages; 506 da_ilDetermineType ilDetermineType; 507 da_ilDetermineTypeF ilDetermineTypeF; 508 da_ilDetermineTypeL ilDetermineTypeL; 509 da_ilDisable ilDisable; 510 da_ilDxtcDataToImage ilDxtcDataToImage; 511 da_ilDxtcDataToSurface ilDxtcDataToSurface; 512 da_ilEnable ilEnable; 513 //da_ilFlipSurfaceDxtcData ilFlipSurfaceDxtcData; 514 da_ilFormatFunc ilFormatFunc; 515 da_ilGenImages ilGenImages; 516 da_ilGenImage ilGenImage; 517 da_ilGetAlpha ilGetAlpha; 518 da_ilGetBoolean ilGetBoolean; 519 da_ilGetBooleanv ilGetBooleanv; 520 da_ilGetData ilGetData; 521 da_ilGetDXTCData ilGetDXTCData; 522 da_ilGetError ilGetError; 523 da_ilGetInteger ilGetInteger; 524 da_ilGetIntegerv ilGetIntegerv; 525 da_ilGetLumpPos ilGetLumpPos; 526 da_ilGetPalette ilGetPalette; 527 da_ilGetString ilGetString; 528 da_ilHint ilHint; 529 da_ilInit ilInit; 530 da_ilImageToDxtcData ilImageToDxtcData; 531 da_ilIsDisabled ilIsDisabled; 532 da_ilIsEnabled ilIsEnabled; 533 da_ilIsImage ilIsImage; 534 da_ilIsValid ilIsValid; 535 da_ilIsValidF ilIsValidF; 536 da_ilIsValidL ilIsValidL; 537 da_ilKeyColour ilKeyColour; 538 da_ilLoad ilLoad; 539 da_ilLoadF ilLoadF; 540 da_ilLoadImage ilLoadImage; 541 da_ilLoadL ilLoadL; 542 da_ilLoadPal ilLoadPal; 543 da_ilModAlpha ilModAlpha; 544 da_ilOriginFunc ilOriginFunc; 545 da_ilOverlayImage ilOverlayImage; 546 da_ilPopAttrib ilPopAttrib; 547 da_ilPushAttrib ilPushAttrib; 548 da_ilRegisterFormat ilRegisterFormat; 549 da_ilRegisterLoad ilRegisterLoad; 550 da_ilRegisterMipNum ilRegisterMipNum; 551 da_ilRegisterNumImages ilRegisterNumImages; 552 da_ilRegisterOrigin ilRegisterOrigin; 553 da_ilRegisterPal ilRegisterPal; 554 da_ilRegisterSave ilRegisterSave; 555 da_ilRegisterType ilRegisterType; 556 da_ilRemoveLoad ilRemoveLoad; 557 da_ilRemoveSave ilRemoveSave; 558 da_ilResetRead ilResetRead; 559 da_ilResetWrite ilResetWrite; 560 da_ilSave ilSave; 561 da_ilSaveF ilSaveF; 562 da_ilSaveImage ilSaveImage; 563 da_ilSaveL ilSaveL; 564 da_ilSavePal ilSavePal; 565 da_ilSetAlpha ilSetAlpha; 566 da_ilSetData ilSetData; 567 da_ilSetDuration ilSetDuration; 568 da_ilSetInteger ilSetInteger; 569 da_ilSetMemory ilSetMemory; 570 da_ilSetPixels ilSetPixels; 571 da_ilSetRead ilSetRead; 572 da_ilSetString ilSetString; 573 da_ilSetWrite ilSetWrite; 574 da_ilShutDown ilShutDown; 575 da_ilSurfaceToDxtcData ilSurfaceToDxtcData; 576 da_ilTexImage ilTexImage; 577 da_ilTexImageDxtc ilTexImageDxtc; 578 da_ilTypeFromExt ilTypeFromExt; 579 da_ilTypeFunc ilTypeFunc; 580 da_ilLoadData ilLoadData; 581 da_ilLoadDataF ilLoadDataF; 582 da_ilLoadDataL ilLoadDataL; 583 da_ilSaveData ilSaveData; 584 585 alias ilClearColor = ilClearColour; 586 alias ilKeyColor = ilKeyColour; 587 } 588 589 class DerelictILLoader : SharedLibLoader { 590 public this() { 591 super(libNames); 592 } 593 594 protected override void loadSymbols() { 595 bindFunc(cast(void**)&ilActiveFace, "ilActiveFace"); 596 bindFunc(cast(void**)&ilActiveImage, "ilActiveImage"); 597 bindFunc(cast(void**)&ilActiveLayer, "ilActiveLayer"); 598 bindFunc(cast(void**)&ilActiveMipmap, "ilActiveMipmap"); 599 bindFunc(cast(void**)&ilApplyPal, "ilApplyPal"); 600 bindFunc(cast(void**)&ilApplyProfile, "ilApplyProfile"); 601 bindFunc(cast(void**)&ilBindImage, "ilBindImage"); 602 bindFunc(cast(void**)&ilBlit, "ilBlit"); 603 bindFunc(cast(void**)&ilClampNTSC, "ilClampNTSC"); 604 bindFunc(cast(void**)&ilClearColour, "ilClearColour"); 605 bindFunc(cast(void**)&ilClearImage, "ilClearImage"); 606 bindFunc(cast(void**)&ilCloneCurImage, "ilCloneCurImage"); 607 bindFunc(cast(void**)&ilCompressDXT, "ilCompressDXT"); 608 bindFunc(cast(void**)&ilCompressFunc, "ilCompressFunc"); 609 bindFunc(cast(void**)&ilConvertImage, "ilConvertImage"); 610 bindFunc(cast(void**)&ilConvertPal, "ilConvertPal"); 611 bindFunc(cast(void**)&ilCopyImage, "ilCopyImage"); 612 bindFunc(cast(void**)&ilCopyPixels, "ilCopyPixels"); 613 bindFunc(cast(void**)&ilCreateSubImage, "ilCreateSubImage"); 614 bindFunc(cast(void**)&ilDefaultImage, "ilDefaultImage"); 615 bindFunc(cast(void**)&ilDeleteImage, "ilDeleteImage"); 616 bindFunc(cast(void**)&ilDeleteImages, "ilDeleteImages"); 617 bindFunc(cast(void**)&ilDetermineType, "ilDetermineType"); 618 bindFunc(cast(void**)&ilDetermineTypeF, "ilDetermineTypeF"); 619 bindFunc(cast(void**)&ilDetermineTypeL, "ilDetermineTypeL"); 620 bindFunc(cast(void**)&ilDisable, "ilDisable"); 621 bindFunc(cast(void**)&ilDxtcDataToImage, "ilDxtcDataToImage"); 622 bindFunc(cast(void**)&ilDxtcDataToSurface, "ilDxtcDataToSurface"); 623 bindFunc(cast(void**)&ilEnable, "ilEnable"); 624 //bindFunc(cast(void**)&ilFlipSurfaceDxtcData, "ilFlipSurfaceDxtcData"); 625 bindFunc(cast(void**)&ilFormatFunc, "ilFormatFunc"); 626 bindFunc(cast(void**)&ilGenImages, "ilGenImages"); 627 bindFunc(cast(void**)&ilGenImage, "ilGenImage"); 628 bindFunc(cast(void**)&ilGetAlpha, "ilGetAlpha"); 629 bindFunc(cast(void**)&ilGetBoolean, "ilGetBoolean"); 630 bindFunc(cast(void**)&ilGetBooleanv, "ilGetBooleanv"); 631 bindFunc(cast(void**)&ilGetData, "ilGetData"); 632 bindFunc(cast(void**)&ilGetDXTCData, "ilGetDXTCData"); 633 bindFunc(cast(void**)&ilGetError, "ilGetError"); 634 bindFunc(cast(void**)&ilGetInteger, "ilGetInteger"); 635 bindFunc(cast(void**)&ilGetIntegerv, "ilGetIntegerv"); 636 bindFunc(cast(void**)&ilGetLumpPos, "ilGetLumpPos"); 637 bindFunc(cast(void**)&ilGetPalette, "ilGetPalette"); 638 bindFunc(cast(void**)&ilGetString, "ilGetString"); 639 bindFunc(cast(void**)&ilHint, "ilHint"); 640 bindFunc(cast(void**)&ilInit, "ilInit"); 641 bindFunc(cast(void**)&ilImageToDxtcData, "ilImageToDxtcData"); 642 bindFunc(cast(void**)&ilIsDisabled, "ilIsDisabled"); 643 bindFunc(cast(void**)&ilIsEnabled, "ilIsEnabled"); 644 bindFunc(cast(void**)&ilIsImage, "ilIsImage"); 645 bindFunc(cast(void**)&ilIsValid, "ilIsValid"); 646 bindFunc(cast(void**)&ilIsValidF, "ilIsValidF"); 647 bindFunc(cast(void**)&ilIsValidL, "ilIsValidL"); 648 bindFunc(cast(void**)&ilKeyColour, "ilKeyColour"); 649 bindFunc(cast(void**)&ilLoad, "ilLoad"); 650 bindFunc(cast(void**)&ilLoadF, "ilLoadF"); 651 bindFunc(cast(void**)&ilLoadImage, "ilLoadImage"); 652 bindFunc(cast(void**)&ilLoadL, "ilLoadL"); 653 bindFunc(cast(void**)&ilLoadPal, "ilLoadPal"); 654 bindFunc(cast(void**)&ilModAlpha, "ilModAlpha"); 655 bindFunc(cast(void**)&ilOriginFunc, "ilOriginFunc"); 656 bindFunc(cast(void**)&ilOverlayImage, "ilOverlayImage"); 657 bindFunc(cast(void**)&ilPopAttrib, "ilPopAttrib"); 658 bindFunc(cast(void**)&ilPushAttrib, "ilPushAttrib"); 659 bindFunc(cast(void**)&ilRegisterFormat, "ilRegisterFormat"); 660 bindFunc(cast(void**)&ilRegisterLoad, "ilRegisterLoad"); 661 bindFunc(cast(void**)&ilRegisterMipNum, "ilRegisterMipNum"); 662 bindFunc(cast(void**)&ilRegisterNumImages, "ilRegisterNumImages"); 663 bindFunc(cast(void**)&ilRegisterOrigin, "ilRegisterOrigin"); 664 bindFunc(cast(void**)&ilRegisterPal, "ilRegisterPal"); 665 bindFunc(cast(void**)&ilRegisterSave, "ilRegisterSave"); 666 bindFunc(cast(void**)&ilRegisterType, "ilRegisterType"); 667 bindFunc(cast(void**)&ilRemoveLoad, "ilRemoveLoad"); 668 bindFunc(cast(void**)&ilRemoveSave, "ilRemoveSave"); 669 bindFunc(cast(void**)&ilResetRead, "ilResetRead"); 670 bindFunc(cast(void**)&ilResetWrite, "ilResetWrite"); 671 bindFunc(cast(void**)&ilSave, "ilSave"); 672 bindFunc(cast(void**)&ilSaveF, "ilSaveF"); 673 bindFunc(cast(void**)&ilSaveImage, "ilSaveImage"); 674 bindFunc(cast(void**)&ilSaveL, "ilSaveL"); 675 bindFunc(cast(void**)&ilSavePal, "ilSavePal"); 676 bindFunc(cast(void**)&ilSetAlpha, "ilSetAlpha"); 677 bindFunc(cast(void**)&ilSetData, "ilSetData"); 678 bindFunc(cast(void**)&ilSetDuration, "ilSetDuration"); 679 bindFunc(cast(void**)&ilSetInteger, "ilSetInteger"); 680 bindFunc(cast(void**)&ilSetMemory, "ilSetMemory"); 681 bindFunc(cast(void**)&ilSetPixels, "ilSetPixels"); 682 bindFunc(cast(void**)&ilSetRead, "ilSetRead"); 683 bindFunc(cast(void**)&ilSetString, "ilSetString"); 684 bindFunc(cast(void**)&ilSetWrite, "ilSetWrite"); 685 bindFunc(cast(void**)&ilShutDown, "ilShutDown"); 686 bindFunc(cast(void**)&ilSurfaceToDxtcData, "ilSurfaceToDxtcData"); 687 bindFunc(cast(void**)&ilTexImage, "ilTexImage"); 688 bindFunc(cast(void**)&ilTexImageDxtc, "ilTexImageDxtc"); 689 bindFunc(cast(void**)&ilTypeFromExt, "ilTypeFromExt"); 690 bindFunc(cast(void**)&ilTypeFunc, "ilTypeFunc"); 691 bindFunc(cast(void**)&ilLoadData, "ilLoadData"); 692 bindFunc(cast(void**)&ilLoadDataF, "ilLoadDataF"); 693 bindFunc(cast(void**)&ilLoadDataL, "ilLoadDataL"); 694 bindFunc(cast(void**)&ilSaveData, "ilSaveData"); 695 } 696 } 697 698 __gshared DerelictILLoader DerelictIL; 699 700 shared static this() { 701 DerelictIL = new DerelictILLoader(); 702 }