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_