1 //-----------------------------------------------------------------------------
2 //
3 // ImageLib Sources
4 // Copyright (C) 2000-2009 by Denton Woods
5 // Last modified: 03/01/2009
6 //
7 // Filename: src-IL/include/il_internal.h
8 //
9 // Description: Internal stuff for DevIL
10 //
11 //-----------------------------------------------------------------------------
12 #ifndef INTERNAL_H
13 #define INTERNAL_H
14 #define _IL_BUILD_LIBRARY
15 
16 
17 // Local headers
18 /*#if (defined(_WIN32) || defined(_WIN64)) && !defined(HAVE_CONFIG_H)
19 	#define HAVE_CONFIG_H
20 #endif*/
21 #ifdef HAVE_CONFIG_H //if we use autotools, we have HAVE_CONFIG_H defined and we have to look for it like that
22 	#include <config.h>
23 #else // If we do not use autotools, we have to point to (possibly different) config.h than in the opposite case
24 	#include <IL/config.h>
25 #endif
26 
27 // Standard headers
28 #include <stdlib.h>
29 #include <stdio.h>
30 #include <math.h>
31 #include <string.h>
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 #include <IL/il.h>
38 #include <IL/devil_internal_exports.h>
39 #include "il_files.h"
40 #include "il_endian.h"
41 
42 #ifndef _WIN32
43 	// The Microsoft HD Photo Device Porting Kit has not been ported to anything other
44 	//  than Windows yet, so we disable this if Windows is not the current platform.
45 	#define IL_NO_WDP
46 #endif//_WIN32
47 
48 // If we do not want support for game image formats, this define removes them all.
49 #ifdef IL_NO_GAMES
50 	#define IL_NO_BLP
51 	#define IL_NO_DOOM
52 	#define IL_NO_FTX
53 	#define IL_NO_IWI
54 	#define IL_NO_LIF
55 	#define IL_NO_MDL
56 	#define IL_NO_ROT
57 	#define IL_NO_TPL
58 	#define IL_NO_UTX
59 	#define IL_NO_WAL
60 #endif//IL_NO_GAMES
61 
62 // If we want to compile without support for formats supported by external libraries,
63 //  this define will remove them all.
64 #ifdef IL_NO_EXTLIBS
65 	#define IL_NO_EXR
66 	#define IL_NO_JP2
67 	#define IL_NO_JPG
68 	#define IL_NO_LCMS
69 	#define IL_NO_MNG
70 	#define IL_NO_PNG
71 	#define IL_NO_TIF
72 	#define IL_NO_WDP
73 	#undef IL_USE_DXTC_NVIDIA
74 	#undef IL_USE_DXTC_SQUISH
75 #endif//IL_NO_EXTLIBS
76 
77 // Windows-specific
78 #ifdef _WIN32
79 	#ifdef _MSC_VER
80 		#if _MSC_VER > 1000
81 			#pragma once
82 			#pragma intrinsic(memcpy)
83 			#pragma intrinsic(memset)
84 			#pragma intrinsic(strcmp)
85 			#pragma intrinsic(strlen)
86 			#pragma intrinsic(strcpy)
87 
88 			#if _MSC_VER >= 1300
89 				#pragma warning(disable : 4996)  // MSVC++ 8/9 deprecation warnings
90 			#endif
91 		#endif // _MSC_VER > 1000
92 	#endif
93 	#define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers
94 	#include <windows.h>
95 #endif//_WIN32
96 
97 #ifdef _UNICODE
98 	#define IL_TEXT(s) L##s
99 	#ifndef _WIN32  // At least in Linux, fopen works fine, and wcsicmp is not defined.
100 		#define wcsicmp wcsncasecmp
101 		#define _wcsicmp wcsncasecmp
102 		#define _wfopen fopen
103 	#endif
104 	#define iStrCpy wcscpy
105 #else
106 	#define IL_TEXT(s) (s)
107 	#define iStrCpy strcpy
108 #endif
109 
110 #ifdef IL_INLINE_ASM
111 	#if (defined (_MSC_VER) && defined(_WIN32))  // MSVC++ only
112 		#define USE_WIN32_ASM
113 	#endif
114 
115 	#ifdef _WIN64
116 		#undef USE_WIN32_ASM
117 	//@TODO: Windows 64 compiler cannot use inline ASM, so we need to
118 	//  generate some MASM code at some point.
119 	#endif
120 
121 	#ifdef _WIN32_WCE  // Cannot use our inline ASM in Windows Mobile.
122 		#undef USE_WIN32_ASM
123 	#endif
124 #endif
125 extern ILimage *iCurImage;
126 #define BIT_0	0x00000001
127 #define BIT_1	0x00000002
128 #define BIT_2	0x00000004
129 #define BIT_3	0x00000008
130 #define BIT_4	0x00000010
131 #define BIT_5	0x00000020
132 #define BIT_6	0x00000040
133 #define BIT_7	0x00000080
134 #define BIT_8	0x00000100
135 #define BIT_9	0x00000200
136 #define BIT_10	0x00000400
137 #define BIT_11	0x00000800
138 #define BIT_12	0x00001000
139 #define BIT_13	0x00002000
140 #define BIT_14	0x00004000
141 #define BIT_15	0x00008000
142 #define BIT_16	0x00010000
143 #define BIT_17	0x00020000
144 #define BIT_18	0x00040000
145 #define BIT_19	0x00080000
146 #define BIT_20	0x00100000
147 #define BIT_21	0x00200000
148 #define BIT_22	0x00400000
149 #define BIT_23	0x00800000
150 #define BIT_24	0x01000000
151 #define BIT_25	0x02000000
152 #define BIT_26	0x04000000
153 #define BIT_27	0x08000000
154 #define BIT_28	0x10000000
155 #define BIT_29	0x20000000
156 #define BIT_30	0x40000000
157 #define BIT_31	0x80000000
158 #define NUL '\0'  // Easier to type and ?portable?
159 #if !_WIN32 || _WIN32_WCE
160 	int stricmp(const char *src1, const char *src2);
161 	int strnicmp(const char *src1, const char *src2, size_t max);
162 #endif//_WIN32
163 #ifdef _WIN32_WCE
164 	char *strdup(const char *src);
165 #endif
166 int iStrCmp(ILconst_string src1, ILconst_string src2);
167 
168 //
169 // Some math functions
170 //
171 // A fast integer squareroot, completely accurate for x < 289.
172 // Taken from http://atoms.org.uk/sqrt/
173 // There is also a version that is accurate for all integers
174 // < 2^31, if we should need it
175 int iSqrt(int x);
176 //
177 // Useful miscellaneous functions
178 //
179 ILboolean	iCheckExtension(ILconst_string Arg, ILconst_string Ext);
180 ILbyte*		iFgets(char *buffer, ILuint maxlen);
181 ILboolean	iFileExists(ILconst_string FileName);
182 ILstring	iGetExtension(ILconst_string FileName);
183 ILstring	ilStrDup(ILconst_string Str);
184 ILuint		ilStrLen(ILconst_string Str);
185 ILuint		ilCharStrLen(const char *Str);
186 // Miscellaneous functions
187 void					ilDefaultStates(void);
188 ILenum					iGetHint(ILenum Target);
189 ILint					iGetInt(ILenum Mode);
190 void					ilRemoveRegistered(void);
191 ILAPI void ILAPIENTRY	ilSetCurImage(ILimage *Image);
192 ILuint					ilDetermineSize(ILenum Type);
193 //
194 // Rle compression
195 //
196 #define		IL_TGACOMP 0x01
197 #define		IL_PCXCOMP 0x02
198 #define		IL_SGICOMP 0x03
199 #define     IL_BMPCOMP 0x04
200 ILboolean	ilRleCompressLine(ILubyte *ScanLine, ILuint Width, ILubyte Bpp, ILubyte *Dest, ILuint *DestWidth, ILenum CompressMode);
201 ILuint		ilRleCompress(ILubyte *Data, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILubyte *Dest, ILenum CompressMode, ILuint *ScanTable);
202 void		iSetImage0(void);
203 // DXTC compression
204 ILuint			ilNVidiaCompressDXTFile(ILubyte *Data, ILuint Width, ILuint Height, ILuint Depth, ILenum DxtType);
205 ILAPI ILubyte*	ILAPIENTRY ilNVidiaCompressDXT(ILubyte *Data, ILuint Width, ILuint Height, ILuint Depth, ILenum DxtFormat, ILuint *DxtSize);
206 ILAPI ILubyte*	ILAPIENTRY ilSquishCompressDXT(ILubyte *Data, ILuint Width, ILuint Height, ILuint Depth, ILenum DxtFormat, ILuint *DxtSize);
207 
208 // Conversion functions
209 ILboolean	ilAddAlpha(void);
210 ILboolean	ilAddAlphaKey(ILimage *Image);
211 ILboolean	iFastConvert(ILenum DestFormat);
212 ILboolean	ilFixCur(void);
213 ILboolean	ilFixImage(void);
214 ILboolean	ilRemoveAlpha(void);
215 ILboolean	ilSwapColours(void);
216 // Palette functions
217 ILboolean	iCopyPalette(ILpal *Dest, ILpal *Src);
218 // Miscellaneous functions
219 char*		iGetString(ILenum StringName);  // Internal version of ilGetString
220 
221 //
222 // Image loading/saving functions
223 //
224 ILboolean ilIsValidBlp(ILconst_string FileName);
225 ILboolean ilIsValidBlpF(ILHANDLE File);
226 ILboolean ilIsValidBlpL(const void *Lump, ILuint Size);
227 ILboolean ilLoadBlp(ILconst_string FileName);
228 ILboolean ilLoadBlpF(ILHANDLE File);
229 ILboolean ilLoadBlpL(const void *Lump, ILuint Size);
230 ILboolean ilIsValidBmp(ILconst_string FileName);
231 ILboolean ilIsValidBmpF(ILHANDLE File);
232 ILboolean ilIsValidBmpL(const void *Lump, ILuint Size);
233 ILboolean ilLoadBmp(ILconst_string FileName);
234 ILboolean ilLoadBmpF(ILHANDLE File);
235 ILboolean ilLoadBmpL(const void *Lump, ILuint Size);
236 ILboolean ilSaveBmp(ILconst_string FileName);
237 ILuint    ilSaveBmpF(ILHANDLE File);
238 ILuint    ilSaveBmpL(void *Lump, ILuint Size);
239 ILboolean ilSaveCHeader(ILconst_string FileName, char *InternalName);
240 ILboolean ilLoadCut(ILconst_string FileName);
241 ILboolean ilLoadCutF(ILHANDLE File);
242 ILboolean ilLoadCutL(const void *Lump, ILuint Size);
243 ILboolean ilIsValidDcx(ILconst_string FileName);
244 ILboolean ilIsValidDcxF(ILHANDLE File);
245 ILboolean ilIsValidDcxL(const void *Lump, ILuint Size);
246 ILboolean ilLoadDcx(ILconst_string FileName);
247 ILboolean ilLoadDcxF(ILHANDLE File);
248 ILboolean ilLoadDcxL(const void *Lump, ILuint Size);
249 ILboolean ilIsValidDds(ILconst_string FileName);
250 ILboolean ilIsValidDdsF(ILHANDLE File);
251 ILboolean ilIsValidDdsL(const void *Lump, ILuint Size);
252 ILboolean ilLoadDds(ILconst_string FileName);
253 ILboolean ilLoadDdsF(ILHANDLE File);
254 ILboolean ilLoadDdsL(const void *Lump, ILuint Size);
255 ILboolean ilSaveDds(ILconst_string FileName);
256 ILuint    ilSaveDdsF(ILHANDLE File);
257 ILuint    ilSaveDdsL(void *Lump, ILuint Size);
258 ILboolean ilIsValidDicom(ILconst_string FileName);
259 ILboolean ilIsValidDicomF(ILHANDLE File);
260 ILboolean ilIsValidDicomL(const void *Lump, ILuint Size);
261 ILboolean ilLoadDicom(ILconst_string FileName);
262 ILboolean ilLoadDicomF(ILHANDLE File);
263 ILboolean ilLoadDicomL(const void *Lump, ILuint Size);
264 ILboolean ilLoadDoom(ILconst_string FileName);
265 ILboolean ilLoadDoomF(ILHANDLE File);
266 ILboolean ilLoadDoomL(const void *Lump, ILuint Size);
267 ILboolean ilLoadDoomFlat(ILconst_string FileName);
268 ILboolean ilLoadDoomFlatF(ILHANDLE File);
269 ILboolean ilLoadDoomFlatL(const void *Lump, ILuint Size);
270 ILboolean ilIsValidDpx(ILconst_string FileName);
271 ILboolean ilIsValidDpxF(ILHANDLE File);
272 ILboolean ilIsValidDpxL(const void *Lump, ILuint Size);
273 ILboolean ilLoadDpx(ILconst_string FileName);
274 ILboolean ilLoadDpxF(ILHANDLE File);
275 ILboolean ilLoadDpxL(const void *Lump, ILuint Size);
276 ILboolean ilIsValidExr(ILconst_string FileName);
277 ILboolean ilIsValidExrF(ILHANDLE File);
278 ILboolean ilIsValidExrL(const void *Lump, ILuint Size);
279 ILboolean ilLoadExr(ILconst_string FileName);
280 ILboolean ilLoadExrF(ILHANDLE File);
281 ILboolean ilLoadExrL(const void *Lump, ILuint Size);
282 ILboolean ilSaveExr(ILconst_string FileName);
283 ILuint    ilSaveExrF(ILHANDLE File);
284 ILuint    ilSaveExrL(void *Lump, ILuint Size);
285 ILboolean ilIsValidFits(ILconst_string FileName);
286 ILboolean ilIsValidFitsF(ILHANDLE File);
287 ILboolean ilIsValidFitsL(const void *Lump, ILuint Size);
288 ILboolean ilLoadFits(ILconst_string FileName);
289 ILboolean ilLoadFitsF(ILHANDLE File);
290 ILboolean ilLoadFitsL(const void *Lump, ILuint Size);
291 ILboolean ilLoadFtx(ILconst_string FileName);
292 ILboolean ilLoadFtxF(ILHANDLE File);
293 ILboolean ilLoadFtxL(const void *Lump, ILuint Size);
294 ILboolean ilIsValidGif(ILconst_string FileName);
295 ILboolean ilIsValidGifF(ILHANDLE File);
296 ILboolean ilIsValidGifL(const void *Lump, ILuint Size);
297 ILboolean ilLoadGif(ILconst_string FileName);
298 ILboolean ilLoadGifF(ILHANDLE File);
299 ILboolean ilLoadGifL(const void *Lump, ILuint Size);
300 ILboolean ilIsValidHdr(ILconst_string FileName);
301 ILboolean ilIsValidHdrF(ILHANDLE File);
302 ILboolean ilIsValidHdrL(const void *Lump, ILuint Size);
303 ILboolean ilLoadHdr(ILconst_string FileName);
304 ILboolean ilLoadHdrF(ILHANDLE File);
305 ILboolean ilLoadHdrL(const void *Lump, ILuint Size);
306 ILboolean ilSaveHdr(ILconst_string FileName);
307 ILuint    ilSaveHdrF(ILHANDLE File);
308 ILuint    ilSaveHdrL(void *Lump, ILuint Size);
309 ILboolean ilLoadIcon(ILconst_string FileName);
310 ILboolean ilLoadIconF(ILHANDLE File);
311 ILboolean ilLoadIconL(const void *Lump, ILuint Size);
312 ILboolean ilIsValidIcns(ILconst_string FileName);
313 ILboolean ilIsValidIcnsF(ILHANDLE File);
314 ILboolean ilIsValidIcnsL(const void *Lump, ILuint Size);
315 ILboolean ilLoadIcns(ILconst_string FileName);
316 ILboolean ilLoadIcnsF(ILHANDLE File);
317 ILboolean ilLoadIcnsL(const void *Lump, ILuint Size);
318 ILboolean ilLoadIff(ILconst_string FileName);
319 ILboolean ilLoadIffF(ILHANDLE File);
320 ILboolean ilLoadIffL(const void *Lump, ILuint Size);
321 ILboolean ilIsValidIlbm(ILconst_string FileName);
322 ILboolean ilIsValidIlbmF(ILHANDLE File);
323 ILboolean ilIsValidIlbmL(const void *Lump, ILuint Size);
324 ILboolean ilLoadIlbm(ILconst_string FileName);
325 ILboolean ilLoadIlbmF(ILHANDLE File);
326 ILboolean ilLoadIlbmL(const void *Lump, ILuint Size);
327 ILboolean ilIsValidIwi(ILconst_string FileName);
328 ILboolean ilIsValidIwiF(ILHANDLE File);
329 ILboolean ilIsValidIwiL(const void *Lump, ILuint Size);
330 ILboolean ilLoadIwi(ILconst_string FileName);
331 ILboolean ilLoadIwiF(ILHANDLE File);
332 ILboolean ilLoadIwiL(const void *Lump, ILuint Size);
333 ILboolean ilIsValidJp2(ILconst_string FileName);
334 ILboolean ilIsValidJp2F(ILHANDLE File);
335 ILboolean ilIsValidJp2L(const void *Lump, ILuint Size);
336 ILboolean ilLoadJp2(ILconst_string FileName);
337 ILboolean ilLoadJp2F(ILHANDLE File);
338 ILboolean ilLoadJp2L(const void *Lump, ILuint Size);
339 ILboolean ilLoadJp2LInternal(const void *Lump, ILuint Size, ILimage *Image);
340 ILboolean ilSaveJp2(ILconst_string FileName);
341 ILuint    ilSaveJp2F(ILHANDLE File);
342 ILuint    ilSaveJp2L(void *Lump, ILuint Size);
343 ILboolean ilIsValidJpeg(ILconst_string FileName);
344 ILboolean ilIsValidJpegF(ILHANDLE File);
345 ILboolean ilIsValidJpegL(const void *Lump, ILuint Size);
346 ILboolean ilLoadJpeg(ILconst_string FileName);
347 ILboolean ilLoadJpegF(ILHANDLE File);
348 ILboolean ilLoadJpegL(const void *Lump, ILuint Size);
349 ILboolean ilSaveJpeg(ILconst_string FileName);
350 ILuint    ilSaveJpegF(ILHANDLE File);
351 ILuint    ilSaveJpegL(void *Lump, ILuint Size);
352 ILboolean ilIsValidLif(ILconst_string FileName);
353 ILboolean ilIsValidLifF(ILHANDLE File);
354 ILboolean ilIsValidLifL(const void *Lump, ILuint Size);
355 ILboolean ilLoadLif(ILconst_string FileName);
356 ILboolean ilLoadLifF(ILHANDLE File);
357 ILboolean ilLoadLifL(const void *Lump, ILuint Size);
358 ILboolean ilIsValidMdl(ILconst_string FileName);
359 ILboolean ilIsValidMdlF(ILHANDLE File);
360 ILboolean ilIsValidMdlL(const void *Lump, ILuint Size);
361 ILboolean ilLoadMdl(ILconst_string FileName);
362 ILboolean ilLoadMdlF(ILHANDLE File);
363 ILboolean ilLoadMdlL(const void *Lump, ILuint Size);
364 ILboolean ilLoadMng(ILconst_string FileName);
365 ILboolean ilLoadMngF(ILHANDLE File);
366 ILboolean ilLoadMngL(const void *Lump, ILuint Size);
367 ILboolean ilSaveMng(ILconst_string FileName);
368 ILuint    ilSaveMngF(ILHANDLE File);
369 ILuint    ilSaveMngL(void *Lump, ILuint Size);
370 ILboolean ilIsValidMp3(ILconst_string FileName);
371 ILboolean ilIsValidMp3F(ILHANDLE File);
372 ILboolean ilIsValidMp3L(const void *Lump, ILuint Size);
373 ILboolean ilLoadMp3(ILconst_string FileName);
374 ILboolean ilLoadMp3F(ILHANDLE File);
375 ILboolean ilLoadMp3L(const void *Lump, ILuint Size);
376 ILboolean ilLoadPcd(ILconst_string FileName);
377 ILboolean ilLoadPcdF(ILHANDLE File);
378 ILboolean ilLoadPcdL(const void *Lump, ILuint Size);
379 ILboolean ilIsValidPcx(ILconst_string FileName);
380 ILboolean ilIsValidPcxF(ILHANDLE File);
381 ILboolean ilIsValidPcxL(const void *Lump, ILuint Size);
382 ILboolean ilLoadPcx(ILconst_string FileName);
383 ILboolean ilLoadPcxF(ILHANDLE File);
384 ILboolean ilLoadPcxL(const void *Lump, ILuint Size);
385 ILboolean ilSavePcx(ILconst_string FileName);
386 ILuint    ilSavePcxF(ILHANDLE File);
387 ILuint    ilSavePcxL(void *Lump, ILuint Size);
388 ILboolean ilIsValidPic(ILconst_string FileName);
389 ILboolean ilIsValidPicF(ILHANDLE File);
390 ILboolean ilIsValidPicL(const void *Lump, ILuint Size);
391 ILboolean ilLoadPic(ILconst_string FileName);
392 ILboolean ilLoadPicF(ILHANDLE File);
393 ILboolean ilLoadPicL(const void *Lump, ILuint Size);
394 ILboolean ilLoadPix(ILconst_string FileName);
395 ILboolean ilLoadPixF(ILHANDLE File);
396 ILboolean ilLoadPixL(const void *Lump, ILuint Size);
397 ILboolean ilIsValidPng(ILconst_string FileName);
398 ILboolean ilIsValidPngF(ILHANDLE File);
399 ILboolean ilIsValidPngL(const void *Lump, ILuint Size);
400 ILboolean ilLoadPng(ILconst_string FileName);
401 ILboolean ilLoadPngF(ILHANDLE File);
402 ILboolean ilLoadPngL(const void *Lump, ILuint Size);
403 ILboolean ilSavePng(ILconst_string FileName);
404 ILuint    ilSavePngF(ILHANDLE File);
405 ILuint    ilSavePngL(void *Lump, ILuint Size);
406 ILboolean ilIsValidPnm(ILconst_string FileName);
407 ILboolean ilIsValidPnmF(ILHANDLE File);
408 ILboolean ilIsValidPnmL(const void *Lump, ILuint Size);
409 ILboolean ilLoadPnm(ILconst_string FileName);
410 ILboolean ilLoadPnmF(ILHANDLE File);
411 ILboolean ilLoadPnmL(const void *Lump, ILuint Size);
412 ILboolean ilSavePnm(ILconst_string FileName);
413 ILuint    ilSavePnmF(ILHANDLE File);
414 ILuint    ilSavePnmL(void *Lump, ILuint Size);
415 ILboolean ilIsValidPsd(ILconst_string FileName);
416 ILboolean ilIsValidPsdF(ILHANDLE File);
417 ILboolean ilIsValidPsdL(const void *Lump, ILuint Size);
418 ILboolean ilLoadPsd(ILconst_string FileName);
419 ILboolean ilLoadPsdF(ILHANDLE File);
420 ILboolean ilLoadPsdL(const void *Lump, ILuint Size);
421 ILboolean ilSavePsd(ILconst_string FileName);
422 ILuint    ilSavePsdF(ILHANDLE File);
423 ILuint    ilSavePsdL(void *Lump, ILuint Size);
424 ILboolean ilIsValidPsp(ILconst_string FileName);
425 ILboolean ilIsValidPspF(ILHANDLE File);
426 ILboolean ilIsValidPspL(const void *Lump, ILuint Size);
427 ILboolean ilLoadPsp(ILconst_string FileName);
428 ILboolean ilLoadPspF(ILHANDLE File);
429 ILboolean ilLoadPspL(const void *Lump, ILuint Size);
430 ILboolean ilLoadPxr(ILconst_string FileName);
431 ILboolean ilLoadPxrF(ILHANDLE File);
432 ILboolean ilLoadPxrL(const void *Lump, ILuint Size);
433 ILboolean ilLoadRaw(ILconst_string FileName);
434 ILboolean ilLoadRawF(ILHANDLE File);
435 ILboolean ilLoadRawL(const void *Lump, ILuint Size);
436 ILboolean ilSaveRaw(ILconst_string FileName);
437 ILuint    ilSaveRawF(ILHANDLE File);
438 ILuint    ilSaveRawL(void *Lump, ILuint Size);
439 ILboolean ilLoadRot(ILconst_string FileName);
440 ILboolean ilLoadRotF(ILHANDLE File);
441 ILboolean ilLoadRotL(const void *Lump, ILuint Size);
442 ILboolean ilIsValidRot(ILconst_string FileName);
443 ILboolean ilIsValidRotF(ILHANDLE File);
444 ILboolean ilIsValidRotL(const void *Lump, ILuint Size);
445 ILboolean ilIsValidSgi(ILconst_string FileName);
446 ILboolean ilIsValidSgiF(ILHANDLE File);
447 ILboolean ilIsValidSgiL(const void *Lump, ILuint Size);
448 ILboolean ilLoadSgi(ILconst_string FileName);
449 ILboolean ilLoadSgiF(ILHANDLE File);
450 ILboolean ilLoadSgiL(const void *Lump, ILuint Size);
451 ILboolean ilSaveSgi(ILconst_string FileName);
452 ILuint    ilSaveSgiF(ILHANDLE File);
453 ILuint    ilSaveSgiL(void *Lump, ILuint Size);
454 ILboolean ilIsValidSun(ILconst_string FileName);
455 ILboolean ilIsValidSunF(ILHANDLE File);
456 ILboolean ilIsValidSunL(const void *Lump, ILuint Size);
457 ILboolean ilLoadSun(ILconst_string FileName);
458 ILboolean ilLoadSunF(ILHANDLE File);
459 ILboolean ilLoadSunL(const void *Lump, ILuint Size);
460 ILboolean ilIsValidTga(ILconst_string FileName);
461 ILboolean ilIsValidTgaF(ILHANDLE File);
462 ILboolean ilIsValidTgaL(const void *Lump, ILuint Size);
463 ILboolean ilLoadTarga(ILconst_string FileName);
464 ILboolean ilLoadTargaF(ILHANDLE File);
465 ILboolean ilLoadTargaL(const void *Lump, ILuint Size);
466 ILboolean ilSaveTarga(ILconst_string FileName);
467 ILuint    ilSaveTargaF(ILHANDLE File);
468 ILuint    ilSaveTargaL(void *Lump, ILuint Size);
469 ILboolean ilLoadTexture(ILconst_string FileName);
470 ILboolean ilLoadTextureF(ILHANDLE File);
471 ILboolean ilLoadTextureL(const void *Lump, ILuint Size);
472 ILboolean ilIsValidTiff(ILconst_string FileName);
473 ILboolean ilIsValidTiffF(ILHANDLE File);
474 ILboolean ilIsValidTiffL(const void *Lump, ILuint Size);
475 ILboolean ilLoadTiff(ILconst_string FileName);
476 ILboolean ilLoadTiffF(ILHANDLE File);
477 ILboolean ilLoadTiffL(const void *Lump, ILuint Size);
478 ILboolean ilSaveTiff(ILconst_string FileName);
479 ILuint    ilSaveTiffF(ILHANDLE File);
480 ILuint    ilSaveTiffL(void *Lump, ILuint Size);
481 ILboolean ilIsValidTpl(ILconst_string FileName);
482 ILboolean ilIsValidTplF(ILHANDLE File);
483 ILboolean ilIsValidTplL(const void *Lump, ILuint Size);
484 ILboolean ilLoadTpl(ILconst_string FileName);
485 ILboolean ilLoadTplF(ILHANDLE File);
486 ILboolean ilLoadTplL(const void *Lump, ILuint Size);
487 ILboolean ilLoadUtx(ILconst_string FileName);
488 ILboolean ilLoadUtxF(ILHANDLE File);
489 ILboolean ilLoadUtxL(const void *Lump, ILuint Size);
490 ILboolean ilIsValidVtf(ILconst_string FileName);
491 ILboolean ilIsValidVtfF(ILHANDLE File);
492 ILboolean ilIsValidVtfL(const void *Lump, ILuint Size);
493 ILboolean ilLoadVtf(ILconst_string FileName);
494 ILboolean ilLoadVtfF(ILHANDLE File);
495 ILboolean ilLoadVtfL(const void *Lump, ILuint Size);
496 ILboolean ilSaveVtf(ILconst_string FileName);
497 ILuint    ilSaveVtfF(ILHANDLE File);
498 ILuint    ilSaveVtfL(void *Lump, ILuint Size);ILboolean ilLoadWal(ILconst_string FileName);
499 ILboolean ilLoadWalF(ILHANDLE File);
500 ILboolean ilLoadWalL(const void *Lump, ILuint Size);
501 ILboolean ilLoadWbmp(ILconst_string FileName);
502 ILboolean ilLoadWbmpF(ILHANDLE File);
503 ILboolean ilLoadWbmpL(const void *Lump, ILuint Size);
504 ILboolean ilSaveWbmp(ILconst_string FileName);
505 ILuint    ilSaveWbmpF(ILHANDLE File);
506 ILuint    ilSaveWbmpL(void *Lump, ILuint Size);
507 ILboolean ilIsValidWdp(ILconst_string FileName);
508 ILboolean ilIsValidWdpF(ILHANDLE File);
509 ILboolean ilIsValidWdpL(const void *Lump, ILuint Size);
510 ILboolean ilLoadWdp(ILconst_string FileName);
511 ILboolean ilLoadWdpF(ILHANDLE File);
512 ILboolean ilLoadWdpL(const void *Lump, ILuint Size);
513 ILboolean ilIsValidXpm(ILconst_string FileName);
514 ILboolean ilIsValidXpmF(ILHANDLE File);
515 ILboolean ilIsValidXpmL(const void *Lump, ILuint Size);
516 ILboolean ilLoadXpm(ILconst_string FileName);
517 ILboolean ilLoadXpmF(ILHANDLE File);
518 ILboolean ilLoadXpmL(const void *Lump, ILuint Size);
519 
520 
521 // OpenEXR is written in C++, so we have to wrap this to avoid linker errors.
522 /*#ifndef IL_NO_EXR
523 	#ifdef __cplusplus
524 	extern "C" {
525 	#endif
526 		ILboolean ilLoadExr(ILconst_string FileName);
527 	#ifdef __cplusplus
528 	}
529 	#endif
530 #endif*/
531 
532 //ILboolean ilLoadExr(ILconst_string FileName);
533 
534 
535 #ifdef __cplusplus
536 }
537 #endif
538 
539 #endif//INTERNAL_H
540