00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00018 #ifndef __ilut_h_
00019 #ifndef __ILUT_H__
00020
00021 #define __ilut_h_
00022 #define __ILUT_H__
00023
00024 #include <IL/il.h>
00025 #include <IL/ilu.h>
00026
00027
00028
00029
00030
00031
00032 #define ILUT_VERSION_1_7_8 1
00033 #define ILUT_VERSION 178
00034
00035
00036
00037 #define ILUT_OPENGL_BIT 0x00000001
00038 #define ILUT_D3D_BIT 0x00000002
00039 #define ILUT_ALL_ATTRIB_BITS 0x000FFFFF
00040
00041
00042
00043 #define ILUT_INVALID_ENUM 0x0501
00044 #define ILUT_OUT_OF_MEMORY 0x0502
00045 #define ILUT_INVALID_VALUE 0x0505
00046 #define ILUT_ILLEGAL_OPERATION 0x0506
00047 #define ILUT_INVALID_PARAM 0x0509
00048 #define ILUT_COULD_NOT_OPEN_FILE 0x050A
00049 #define ILUT_STACK_OVERFLOW 0x050E
00050 #define ILUT_STACK_UNDERFLOW 0x050F
00051 #define ILUT_BAD_DIMENSIONS 0x0511
00052 #define ILUT_NOT_SUPPORTED 0x0550
00053
00054
00055
00056 #define ILUT_PALETTE_MODE 0x0600
00057 #define ILUT_OPENGL_CONV 0x0610
00058 #define ILUT_D3D_MIPLEVELS 0x0620
00059 #define ILUT_MAXTEX_WIDTH 0x0630
00060 #define ILUT_MAXTEX_HEIGHT 0x0631
00061 #define ILUT_MAXTEX_DEPTH 0x0632
00062 #define ILUT_GL_USE_S3TC 0x0634
00063 #define ILUT_D3D_USE_DXTC 0x0634
00064 #define ILUT_GL_GEN_S3TC 0x0635
00065 #define ILUT_D3D_GEN_DXTC 0x0635
00066 #define ILUT_S3TC_FORMAT 0x0705
00067 #define ILUT_DXTC_FORMAT 0x0705
00068 #define ILUT_D3D_POOL 0x0706
00069 #define ILUT_D3D_ALPHA_KEY_COLOR 0x0707
00070 #define ILUT_D3D_ALPHA_KEY_COLOUR 0x0707
00071 #define ILUT_FORCE_INTEGER_FORMAT 0x0636
00072
00073
00074
00075
00076 #define ILUT_GL_AUTODETECT_TEXTURE_TARGET 0x0807
00077
00078
00079
00080 #define ILUT_VERSION_NUM IL_VERSION_NUM
00081 #define ILUT_VENDOR IL_VENDOR
00082
00083
00084 #define ILUT_OPENGL 0
00085 #define ILUT_ALLEGRO 1
00086 #define ILUT_WIN32 2
00087 #define ILUT_DIRECT3D8 3
00088 #define ILUT_DIRECT3D9 4
00089 #define ILUT_X11 5
00090 #define ILUT_DIRECT3D10 6
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127 #if (defined(_WIN32) || defined(_WIN64))
00128 #if (defined(IL_USE_PRAGMA_LIBS)) && (!defined(_IL_BUILD_LIBRARY))
00129 #if defined(_MSC_VER) || defined(__BORLANDC__)
00130 #pragma comment(lib, "ILUT.lib")
00131 #endif
00132 #endif
00133
00134 #include <IL/ilut_config.h>
00135 #endif
00136
00137
00138
00139
00140
00141
00143
00145
00146 #ifdef ILUT_USE_OPENGL
00147 #if defined(_MSC_VER) || defined(_WIN32)
00148
00149 #include <windows.h>
00150 #endif//_MSC_VER
00151
00152 #ifdef __APPLE__
00153 #include <OpenGL/gl.h>
00154 #include <OpenGL/glu.h>
00155 #else
00156 #include <GL/gl.h>
00157 #include <GL/glu.h>
00158 #endif//__APPLE__
00159 #endif
00160
00161
00162 #ifdef ILUT_USE_WIN32
00163
00164 #ifdef _DEBUG
00165 #define _CRTDBG_MAP_ALLOC
00166 #include <stdlib.h>
00167 #ifndef _WIN32_WCE
00168 #include <crtdbg.h>
00169 #endif
00170 #endif
00171 #include <windows.h>
00172 #endif
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183 #ifdef ILUT_USE_ALLEGRO
00184
00185 #endif//ILUT_USE_ALLEGRO
00186
00187 #ifdef ILUT_USE_SDL
00188
00189 #endif
00190
00191 #ifdef ILUT_USE_DIRECTX8
00192 #include <d3d8.h>
00193 #endif//ILUT_USE_DIRECTX9
00194
00195 #ifdef ILUT_USE_DIRECTX9
00196 #include <d3d9.h>
00197 #endif//ILUT_USE_DIRECTX9
00198
00199 #ifdef ILUT_USE_DIRECTX10
00200 #pragma warning(push)
00201 #pragma warning(disable : 4201) // Disables 'nonstandard extension used : nameless struct/union' warning
00202 #include <rpcsal.h>
00203 #include <sal.h>
00204 #include <d3d10.h>
00205 #pragma warning(pop)
00206 #endif//ILUT_USE_DIRECTX10
00207
00208 #ifdef ILUT_USE_X11
00209 #include <X11/Xlib.h>
00210 #include <X11/Xutil.h>
00211 #ifdef ILUT_USE_XSHM
00212 #include <sys/ipc.h>
00213 #include <sys/shm.h>
00214 #include <X11/extensions/XShm.h>
00215 #endif//ILUT_USE_XSHM
00216 #endif//ILUT_USE_X11
00217
00218
00219
00220
00221
00222
00223
00224 #ifdef __cplusplus
00225 extern "C" {
00226 #endif
00227
00228
00229 ILAPI ILboolean ILAPIENTRY ilutDisable(ILenum Mode);
00230 ILAPI ILboolean ILAPIENTRY ilutEnable(ILenum Mode);
00231 ILAPI ILboolean ILAPIENTRY ilutGetBoolean(ILenum Mode);
00232 ILAPI void ILAPIENTRY ilutGetBooleanv(ILenum Mode, ILboolean *Param);
00233 ILAPI ILint ILAPIENTRY ilutGetInteger(ILenum Mode);
00234 ILAPI void ILAPIENTRY ilutGetIntegerv(ILenum Mode, ILint *Param);
00235 ILAPI ILstring ILAPIENTRY ilutGetString(ILenum StringName);
00236 ILAPI void ILAPIENTRY ilutInit(void);
00237 ILAPI ILboolean ILAPIENTRY ilutIsDisabled(ILenum Mode);
00238 ILAPI ILboolean ILAPIENTRY ilutIsEnabled(ILenum Mode);
00239 ILAPI void ILAPIENTRY ilutPopAttrib(void);
00240 ILAPI void ILAPIENTRY ilutPushAttrib(ILuint Bits);
00241 ILAPI void ILAPIENTRY ilutSetInteger(ILenum Mode, ILint Param);
00242
00243 ILAPI ILboolean ILAPIENTRY ilutRenderer(ILenum Renderer);
00244
00245
00246
00247 #ifdef ILUT_USE_OPENGL
00248 ILAPI GLuint ILAPIENTRY ilutGLBindTexImage();
00249 ILAPI GLuint ILAPIENTRY ilutGLBindMipmaps(void);
00250 ILAPI ILboolean ILAPIENTRY ilutGLBuildMipmaps(void);
00251 ILAPI GLuint ILAPIENTRY ilutGLLoadImage(ILstring FileName);
00252 ILAPI ILboolean ILAPIENTRY ilutGLScreen(void);
00253 ILAPI ILboolean ILAPIENTRY ilutGLScreenie(void);
00254 ILAPI ILboolean ILAPIENTRY ilutGLSaveImage(ILstring FileName, GLuint TexID);
00255 ILAPI ILboolean ILAPIENTRY ilutGLSubTex2D(GLuint TexID, ILuint XOff, ILuint YOff);
00256 ILAPI ILboolean ILAPIENTRY ilutGLSubTex3D(GLuint TexID, ILuint XOff, ILuint YOff, ILuint ZOff);
00257 ILAPI ILboolean ILAPIENTRY ilutGLSetTex2D(GLuint TexID);
00258 ILAPI ILboolean ILAPIENTRY ilutGLSetTex3D(GLuint TexID);
00259 ILAPI ILboolean ILAPIENTRY ilutGLTexImage(GLuint Level);
00260 ILAPI ILboolean ILAPIENTRY ilutGLSubTex(GLuint TexID, ILuint XOff, ILuint YOff);
00261
00262 ILAPI ILboolean ILAPIENTRY ilutGLSetTex(GLuint TexID);
00263 ILAPI ILboolean ILAPIENTRY ilutGLSubTex(GLuint TexID, ILuint XOff, ILuint YOff);
00264 #endif//ILUT_USE_OPENGL
00265
00266
00267
00268 #ifdef ILUT_USE_ALLEGRO
00269 #ifdef __cplusplus
00270 extern "C" {
00271 #endif
00272 #include <allegro.h>
00273 #ifdef __cplusplus
00274 }
00275 #endif
00276
00277 ILAPI BITMAP* ILAPIENTRY ilutAllegLoadImage(ILstring FileName);
00278 ILAPI BITMAP* ILAPIENTRY ilutConvertToAlleg(PALETTE Pal);
00279 #endif//ILUT_USE_ALLEGRO
00280
00281
00282
00283 #ifdef ILUT_USE_SDL
00284 ILAPI struct SDL_Surface* ILAPIENTRY ilutConvertToSDLSurface(unsigned int flags);
00285 ILAPI struct SDL_Surface* ILAPIENTRY ilutSDLSurfaceLoadImage(ILstring FileName);
00286 ILAPI ILboolean ILAPIENTRY ilutSDLSurfaceFromBitmap(struct SDL_Surface *Bitmap);
00287 #endif//ILUT_USE_SDL
00288
00289
00290
00291 #ifdef ILUT_USE_BEOS
00292 ILAPI BBitmap ILAPIENTRY ilutConvertToBBitmap(void);
00293 #endif//ILUT_USE_BEOS
00294
00295
00296
00297 #ifdef ILUT_USE_WIN32
00298 ILAPI HBITMAP ILAPIENTRY ilutConvertToHBitmap(HDC hDC);
00299 ILAPI HBITMAP ILAPIENTRY ilutConvertSliceToHBitmap(HDC hDC, ILuint slice);
00300 ILAPI void ILAPIENTRY ilutFreePaddedData(ILubyte *Data);
00301 ILAPI void ILAPIENTRY ilutGetBmpInfo(BITMAPINFO *Info);
00302 ILAPI HPALETTE ILAPIENTRY ilutGetHPal(void);
00303 ILAPI ILubyte* ILAPIENTRY ilutGetPaddedData(void);
00304 ILAPI ILboolean ILAPIENTRY ilutGetWinClipboard(void);
00305 ILAPI ILboolean ILAPIENTRY ilutLoadResource(HINSTANCE hInst, ILint ID, ILstring ResourceType, ILenum Type);
00306 ILAPI ILboolean ILAPIENTRY ilutSetHBitmap(HBITMAP Bitmap);
00307 ILAPI ILboolean ILAPIENTRY ilutSetHPal(HPALETTE Pal);
00308 ILAPI ILboolean ILAPIENTRY ilutSetWinClipboard(void);
00309 ILAPI HBITMAP ILAPIENTRY ilutWinLoadImage(ILstring FileName, HDC hDC);
00310 ILAPI ILboolean ILAPIENTRY ilutWinLoadUrl(ILstring Url);
00311 ILAPI ILboolean ILAPIENTRY ilutWinPrint(ILuint XPos, ILuint YPos, ILuint Width, ILuint Height, HDC hDC);
00312 ILAPI ILboolean ILAPIENTRY ilutWinSaveImage(ILstring FileName, HBITMAP Bitmap);
00313 #endif//ILUT_USE_WIN32
00314
00315
00316 #ifdef ILUT_USE_DIRECTX8
00317
00318 ILAPI struct IDirect3DTexture8* ILAPIENTRY ilutD3D8Texture(struct IDirect3DDevice8 *Device);
00319 ILAPI struct IDirect3DVolumeTexture8* ILAPIENTRY ilutD3D8VolumeTexture(struct IDirect3DDevice8 *Device);
00320 ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromFile(struct IDirect3DDevice8 *Device, char *FileName, struct IDirect3DTexture8 **Texture);
00321 ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromFile(struct IDirect3DDevice8 *Device, char *FileName, struct IDirect3DVolumeTexture8 **Texture);
00322 ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromFileInMemory(struct IDirect3DDevice8 *Device, void *Lump, ILuint Size, struct IDirect3DTexture8 **Texture);
00323 ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromFileInMemory(struct IDirect3DDevice8 *Device, void *Lump, ILuint Size, struct IDirect3DVolumeTexture8 **Texture);
00324 ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromFileHandle(struct IDirect3DDevice8 *Device, ILHANDLE File, struct IDirect3DTexture8 **Texture);
00325 ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromFileHandle(struct IDirect3DDevice8 *Device, ILHANDLE File, struct IDirect3DVolumeTexture8 **Texture);
00326
00327 ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromResource(struct IDirect3DDevice8 *Device, HMODULE SrcModule, char *SrcResource, struct IDirect3DTexture8 **Texture);
00328 ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromResource(struct IDirect3DDevice8 *Device, HMODULE SrcModule, char *SrcResource, struct IDirect3DVolumeTexture8 **Texture);
00329 ILAPI ILboolean ILAPIENTRY ilutD3D8LoadSurface(struct IDirect3DDevice8 *Device, struct IDirect3DSurface8 *Surface);
00330 #endif//ILUT_USE_DIRECTX8
00331
00332 #ifdef ILUT_USE_DIRECTX9
00333 #pragma warning(push)
00334 #pragma warning(disable : 4115) // Disables 'named type definition in parentheses' warning
00335
00336 ILAPI struct IDirect3DTexture9* ILAPIENTRY ilutD3D9Texture (struct IDirect3DDevice9* Device);
00337 ILAPI struct IDirect3DVolumeTexture9* ILAPIENTRY ilutD3D9VolumeTexture (struct IDirect3DDevice9* Device);
00338 ILAPI struct IDirect3DCubeTexture9* ILAPIENTRY ilutD3D9CubeTexture (struct IDirect3DDevice9* Device);
00339
00340 ILAPI ILboolean ILAPIENTRY ilutD3D9CubeTexFromFile(struct IDirect3DDevice9 *Device, ILconst_string FileName, struct IDirect3DCubeTexture9 **Texture);
00341 ILAPI ILboolean ILAPIENTRY ilutD3D9CubeTexFromFileInMemory(struct IDirect3DDevice9 *Device, void *Lump, ILuint Size, struct IDirect3DCubeTexture9 **Texture);
00342 ILAPI ILboolean ILAPIENTRY ilutD3D9CubeTexFromFileHandle(struct IDirect3DDevice9 *Device, ILHANDLE File, struct IDirect3DCubeTexture9 **Texture);
00343 ILAPI ILboolean ILAPIENTRY ilutD3D9CubeTexFromResource(struct IDirect3DDevice9 *Device, HMODULE SrcModule, ILconst_string SrcResource, struct IDirect3DCubeTexture9 **Texture);
00344
00345 ILAPI ILboolean ILAPIENTRY ilutD3D9TexFromFile(struct IDirect3DDevice9 *Device, ILconst_string FileName, struct IDirect3DTexture9 **Texture);
00346 ILAPI ILboolean ILAPIENTRY ilutD3D9VolTexFromFile(struct IDirect3DDevice9 *Device, ILconst_string FileName, struct IDirect3DVolumeTexture9 **Texture);
00347 ILAPI ILboolean ILAPIENTRY ilutD3D9TexFromFileInMemory(struct IDirect3DDevice9 *Device, void *Lump, ILuint Size, struct IDirect3DTexture9 **Texture);
00348 ILAPI ILboolean ILAPIENTRY ilutD3D9VolTexFromFileInMemory(struct IDirect3DDevice9 *Device, void *Lump, ILuint Size, struct IDirect3DVolumeTexture9 **Texture);
00349 ILAPI ILboolean ILAPIENTRY ilutD3D9TexFromFileHandle(struct IDirect3DDevice9 *Device, ILHANDLE File, struct IDirect3DTexture9 **Texture);
00350 ILAPI ILboolean ILAPIENTRY ilutD3D9VolTexFromFileHandle(struct IDirect3DDevice9 *Device, ILHANDLE File, struct IDirect3DVolumeTexture9 **Texture);
00351
00352
00353 ILAPI ILboolean ILAPIENTRY ilutD3D9TexFromResource(struct IDirect3DDevice9 *Device, HMODULE SrcModule, ILconst_string SrcResource, struct IDirect3DTexture9 **Texture);
00354 ILAPI ILboolean ILAPIENTRY ilutD3D9VolTexFromResource(struct IDirect3DDevice9 *Device, HMODULE SrcModule, ILconst_string SrcResource, struct IDirect3DVolumeTexture9 **Texture);
00355 ILAPI ILboolean ILAPIENTRY ilutD3D9LoadSurface(struct IDirect3DDevice9 *Device, struct IDirect3DSurface9 *Surface);
00356 #pragma warning(pop)
00357 #endif//ILUT_USE_DIRECTX9
00358
00359 #ifdef ILUT_USE_DIRECTX10
00360 ILAPI ID3D10Texture2D* ILAPIENTRY ilutD3D10Texture(ID3D10Device *Device);
00361 ILAPI ILboolean ILAPIENTRY ilutD3D10TexFromFile(ID3D10Device *Device, ILconst_string FileName, ID3D10Texture2D **Texture);
00362 ILAPI ILboolean ILAPIENTRY ilutD3D10TexFromFileInMemory(ID3D10Device *Device, void *Lump, ILuint Size, ID3D10Texture2D **Texture);
00363 ILAPI ILboolean ILAPIENTRY ilutD3D10TexFromResource(ID3D10Device *Device, HMODULE SrcModule, ILconst_string SrcResource, ID3D10Texture2D **Texture);
00364 ILAPI ILboolean ILAPIENTRY ilutD3D10TexFromFileHandle(ID3D10Device *Device, ILHANDLE File, ID3D10Texture2D **Texture);
00365 #endif//ILUT_USE_DIRECTX10
00366
00367
00368
00369 #ifdef ILUT_USE_X11
00370 ILAPI XImage * ILAPIENTRY ilutXCreateImage( Display* );
00371 ILAPI Pixmap ILAPIENTRY ilutXCreatePixmap( Display*,Drawable );
00372 ILAPI XImage * ILAPIENTRY ilutXLoadImage( Display*,char* );
00373 ILAPI Pixmap ILAPIENTRY ilutXLoadPixmap( Display*,Drawable,char* );
00374 #ifdef ILUT_USE_XSHM
00375 ILAPI XImage * ILAPIENTRY ilutXShmCreateImage( Display*,XShmSegmentInfo* );
00376 ILAPI void ILAPIENTRY ilutXShmDestroyImage( Display*,XImage*,XShmSegmentInfo* );
00377 ILAPI Pixmap ILAPIENTRY ilutXShmCreatePixmap( Display*,Drawable,XShmSegmentInfo* );
00378 ILAPI void ILAPIENTRY ilutXShmFreePixmap( Display*,Pixmap,XShmSegmentInfo* );
00379 ILAPI XImage * ILAPIENTRY ilutXShmLoadImage( Display*,char*,XShmSegmentInfo* );
00380 ILAPI Pixmap ILAPIENTRY ilutXShmLoadPixmap( Display*,Drawable,char*,XShmSegmentInfo* );
00381 #endif//ILUT_USE_XSHM
00382 #endif//ILUT_USE_X11
00383
00384
00385 #ifdef __cplusplus
00386 }
00387 #endif
00388
00389 #endif // __ILUT_H__
00390 #endif // __ilut_h_