1 // Copyright (C) 2002-2012 Nikolaus Gebhardt 2 // This file is part of the "Irrlicht Engine". 3 // For conditions of distribution and use, see copyright notice in irrlicht.h 4 5 #ifndef __IRR_COMPILE_CONFIG_H_INCLUDED__ 6 #define __IRR_COMPILE_CONFIG_H_INCLUDED__ 7 8 //! Irrlicht SDK Version 9 #define IRRLICHT_VERSION_MAJOR 1 10 #define IRRLICHT_VERSION_MINOR 8 11 #define IRRLICHT_VERSION_REVISION 5 12 // This flag will be defined only in SVN, the official release code will have 13 // it undefined 14 //#define IRRLICHT_VERSION_SVN -alpha 15 #define IRRLICHT_SDK_VERSION "1.8.5" 16 17 #include <stdio.h> // TODO: Although included elsewhere this is required at least for mingw 18 19 //! The defines for different operating system are: 20 //! _IRR_XBOX_PLATFORM_ for XBox 21 //! _IRR_WINDOWS_ for all irrlicht supported Windows versions 22 //! _IRR_WINDOWS_CE_PLATFORM_ for Windows CE 23 //! _IRR_WINDOWS_API_ for Windows or XBox 24 //! _IRR_LINUX_PLATFORM_ for Linux (it is defined here if no other os is defined) 25 //! _IRR_SOLARIS_PLATFORM_ for Solaris 26 //! _IRR_OSX_PLATFORM_ for Apple systems running OSX 27 //! _IRR_POSIX_API_ for Posix compatible systems 28 //! Note: PLATFORM defines the OS specific layer, API can group several platforms 29 30 //! DEVICE is the windowing system used, several PLATFORMs support more than one DEVICE 31 //! Irrlicht can be compiled with more than one device 32 //! _IRR_COMPILE_WITH_WINDOWS_DEVICE_ for Windows API based device 33 //! _IRR_COMPILE_WITH_WINDOWS_CE_DEVICE_ for Windows CE API based device 34 //! _IRR_COMPILE_WITH_OSX_DEVICE_ for Cocoa native windowing on OSX 35 //! _IRR_COMPILE_WITH_X11_DEVICE_ for Linux X11 based device 36 //! _IRR_COMPILE_WITH_SDL_DEVICE_ for platform independent SDL framework 37 //! _IRR_COMPILE_WITH_CONSOLE_DEVICE_ for no windowing system, used as a fallback 38 //! _IRR_COMPILE_WITH_FB_DEVICE_ for framebuffer systems 39 40 //! Passing defines to the compiler which have NO in front of the _IRR definename is an alternative 41 //! way which can be used to disable defines (instead of outcommenting them in this header). 42 //! So defines can be controlled from Makefiles or Projectfiles which allows building 43 //! different library versions without having to change the sources. 44 //! Example: NO_IRR_COMPILE_WITH_X11_ would disable X11 45 46 47 //! Uncomment this line to compile with the SDL device 48 //#define _IRR_COMPILE_WITH_SDL_DEVICE_ 49 #ifdef NO_IRR_COMPILE_WITH_SDL_DEVICE_ 50 #undef _IRR_COMPILE_WITH_SDL_DEVICE_ 51 #endif 52 53 //! Comment this line to compile without the fallback console device. 54 #define _IRR_COMPILE_WITH_CONSOLE_DEVICE_ 55 #ifdef NO_IRR_COMPILE_WITH_CONSOLE_DEVICE_ 56 #undef _IRR_COMPILE_WITH_CONSOLE_DEVICE_ 57 #endif 58 59 //! WIN32 for Windows32 60 //! WIN64 for Windows64 61 // The windows platform and API support SDL and WINDOW device 62 #if defined(_WIN32) || defined(_WIN64) || defined(WIN32) || defined(WIN64) 63 #define _IRR_WINDOWS_ 64 #define _IRR_WINDOWS_API_ 65 #define _IRR_COMPILE_WITH_WINDOWS_DEVICE_ 66 #endif 67 68 //! WINCE is a very restricted environment for mobile devices 69 #if defined(_WIN32_WCE) 70 #define _IRR_WINDOWS_ 71 #define _IRR_WINDOWS_API_ 72 #define _IRR_WINDOWS_CE_PLATFORM_ 73 #define _IRR_COMPILE_WITH_WINDOWS_CE_DEVICE_ 74 #endif 75 76 #if defined(_MSC_VER) && (_MSC_VER < 1300) 77 # error "Only Microsoft Visual Studio 7.0 and later are supported." 78 #endif 79 80 // XBox only suppots the native Window stuff 81 #if defined(_XBOX) 82 #undef _IRR_WINDOWS_ 83 #define _IRR_XBOX_PLATFORM_ 84 #define _IRR_WINDOWS_API_ 85 //#define _IRR_COMPILE_WITH_WINDOWS_DEVICE_ 86 #undef _IRR_COMPILE_WITH_WINDOWS_DEVICE_ 87 //#define _IRR_COMPILE_WITH_SDL_DEVICE_ 88 89 #include <xtl.h> 90 #endif 91 92 #if defined(__APPLE__) || defined(MACOSX) 93 #if !defined(MACOSX) 94 #define MACOSX // legacy support 95 #endif 96 #define _IRR_OSX_PLATFORM_ 97 #define _IRR_COMPILE_WITH_OSX_DEVICE_ 98 #endif 99 100 #if !defined(_IRR_WINDOWS_API_) && !defined(_IRR_OSX_PLATFORM_) 101 #ifndef _IRR_SOLARIS_PLATFORM_ 102 #define _IRR_LINUX_PLATFORM_ 103 #endif 104 #define _IRR_POSIX_API_ 105 #define _IRR_COMPILE_WITH_X11_DEVICE_ 106 #endif 107 108 109 //! Define _IRR_COMPILE_WITH_JOYSTICK_SUPPORT_ if you want joystick events. 110 #ifdef NO_IRR_COMPILE_WITH_JOYSTICK_EVENTS_ 111 #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_ 112 #endif 113 114 115 //! Maximum number of texture an SMaterial can have, up to 8 are supported by Irrlicht. 116 #define _IRR_MATERIAL_MAX_TEXTURES_ 4 117 118 //! Define _IRR_COMPILE_WITH_DIRECT3D_8_ and _IRR_COMPILE_WITH_DIRECT3D_9_ to 119 //! compile the Irrlicht engine with Direct3D8 and/or DIRECT3D9. 120 /** If you only want to use the software device or opengl you can disable those defines. 121 This switch is mostly disabled because people do not get the g++ compiler compile 122 directX header files, and directX is only available on Windows platforms. If you 123 are using Dev-Cpp, and want to compile this using a DX dev pack, you can define 124 _IRR_COMPILE_WITH_DX9_DEV_PACK_. So you simply need to add something like this 125 to the compiler settings: -DIRR_COMPILE_WITH_DX9_DEV_PACK 126 and this to the linker settings: -ld3dx9 -ld3dx8 127 128 Microsoft have chosen to remove D3D8 headers from their recent DXSDKs, and 129 so D3D8 support is now disabled by default. If you really want to build 130 with D3D8 support, then you will have to source a DXSDK with the appropriate 131 headers, e.g. Summer 2004. This is a Microsoft issue, not an Irrlicht one. 132 */ 133 #if defined(_IRR_WINDOWS_API_) && (!defined(__GNUC__) || defined(IRR_COMPILE_WITH_DX9_DEV_PACK)) 134 135 //! Define _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_ if you want to use DirectInput for joystick handling. 136 /** This only applies to Windows devices, currently only supported under Win32 device. 137 If not defined, Windows Multimedia library is used, which offers also broad support for joystick devices. */ 138 #define _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_ 139 #ifdef NO_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_ 140 #undef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_ 141 #endif 142 // can't get this to compile currently under borland, can be removed if someone has a better solution 143 #if defined(__BORLANDC__) 144 #undef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_ 145 #endif 146 147 //! Only define _IRR_COMPILE_WITH_DIRECT3D_8_ if you have an appropriate DXSDK, e.g. Summer 2004 148 // #define _IRR_COMPILE_WITH_DIRECT3D_8_ 149 #define _IRR_COMPILE_WITH_DIRECT3D_9_ 150 151 #ifdef NO_IRR_COMPILE_WITH_DIRECT3D_8_ 152 #undef _IRR_COMPILE_WITH_DIRECT3D_8_ 153 #endif 154 #ifdef NO_IRR_COMPILE_WITH_DIRECT3D_9_ 155 #undef _IRR_COMPILE_WITH_DIRECT3D_9_ 156 #endif 157 158 #endif 159 160 //! Define _IRR_COMPILE_WITH_OPENGL_ to compile the Irrlicht engine with OpenGL. 161 /** If you do not wish the engine to be compiled with OpenGL, comment this 162 define out. */ 163 #define _IRR_COMPILE_WITH_OPENGL_ 164 #ifdef NO_IRR_COMPILE_WITH_OPENGL_ 165 #undef _IRR_COMPILE_WITH_OPENGL_ 166 #endif 167 168 //! Define _IRR_COMPILE_WITH_SOFTWARE_ to compile the Irrlicht engine with software driver 169 /** If you do not need the software driver, or want to use Burning's Video instead, 170 comment this define out */ 171 #define _IRR_COMPILE_WITH_SOFTWARE_ 172 #ifdef NO_IRR_COMPILE_WITH_SOFTWARE_ 173 #undef _IRR_COMPILE_WITH_SOFTWARE_ 174 #endif 175 176 //! Define _IRR_COMPILE_WITH_BURNINGSVIDEO_ to compile the Irrlicht engine with Burning's video driver 177 /** If you do not need this software driver, you can comment this define out. */ 178 #define _IRR_COMPILE_WITH_BURNINGSVIDEO_ 179 #ifdef NO_IRR_COMPILE_WITH_BURNINGSVIDEO_ 180 #undef _IRR_COMPILE_WITH_BURNINGSVIDEO_ 181 #endif 182 183 //! Define _IRR_COMPILE_WITH_X11_ to compile the Irrlicht engine with X11 support. 184 /** If you do not wish the engine to be compiled with X11, comment this 185 define out. */ 186 // Only used in LinuxDevice. 187 #define _IRR_COMPILE_WITH_X11_ 188 #ifdef NO_IRR_COMPILE_WITH_X11_ 189 #undef _IRR_COMPILE_WITH_X11_ 190 #endif 191 192 //! Define _IRR_OPENGL_USE_EXTPOINTER_ if the OpenGL renderer should use OpenGL extensions via function pointers. 193 /** On some systems there is no support for the dynamic extension of OpenGL 194 via function pointers such that this has to be undef'ed. */ 195 #if !defined(_IRR_OSX_PLATFORM_) && !defined(_IRR_SOLARIS_PLATFORM_) 196 #define _IRR_OPENGL_USE_EXTPOINTER_ 197 #endif 198 199 //! On some Linux systems the XF86 vidmode extension or X11 RandR are missing. Use these flags 200 //! to remove the dependencies such that Irrlicht will compile on those systems, too. 201 //! If you don't need colored cursors you can also disable the Xcursor extension 202 #if defined(_IRR_LINUX_PLATFORM_) && defined(_IRR_COMPILE_WITH_X11_) 203 #define _IRR_LINUX_X11_VIDMODE_ 204 //#define _IRR_LINUX_X11_RANDR_ 205 #ifdef NO_IRR_LINUX_X11_VIDMODE_ 206 #undef _IRR_LINUX_X11_VIDMODE_ 207 #endif 208 #ifdef NO_IRR_LINUX_X11_RANDR_ 209 #undef _IRR_LINUX_X11_RANDR_ 210 #endif 211 212 //! X11 has by default only monochrome cursors, but using the Xcursor library we can also get color cursor support. 213 //! If you have the need for custom color cursors on X11 then enable this and make sure you also link 214 //! to the Xcursor library in your Makefile/Projectfile. 215 //#define _IRR_LINUX_XCURSOR_ 216 #ifdef NO_IRR_LINUX_XCURSOR_ 217 #undef _IRR_LINUX_XCURSOR_ 218 #endif 219 220 #endif 221 222 //! Define _IRR_COMPILE_WITH_GUI_ to compile the engine with the built-in GUI 223 /** Disable this if you are using an external library to draw the GUI. If you disable this then 224 you will not be able to use anything provided by the GUI Environment, including loading fonts. */ 225 #define _IRR_COMPILE_WITH_GUI_ 226 #ifdef NO_IRR_COMPILE_WITH_GUI_ 227 #undef _IRR_COMPILE_WITH_GUI_ 228 #endif 229 230 //! Define _IRR_WCHAR_FILESYSTEM to enable unicode filesystem support for the engine. 231 /** This enables the engine to read/write from unicode filesystem. If you 232 disable this feature, the engine behave as before (ansi). This is currently only supported 233 for Windows based systems. You also have to set #define UNICODE for this to compile. 234 */ 235 //#define _IRR_WCHAR_FILESYSTEM 236 #ifdef NO_IRR_WCHAR_FILESYSTEM 237 #undef _IRR_WCHAR_FILESYSTEM 238 #endif 239 240 //! Define _IRR_COMPILE_WITH_LIBJPEG_ to enable compiling the engine using libjpeg. 241 /** This enables the engine to read jpeg images. If you comment this out, 242 the engine will no longer read .jpeg images. */ 243 #define _IRR_COMPILE_WITH_LIBJPEG_ 244 #ifdef NO_IRR_COMPILE_WITH_LIBJPEG_ 245 #undef _IRR_COMPILE_WITH_LIBJPEG_ 246 #endif 247 248 //! Define _IRR_USE_NON_SYSTEM_JPEG_LIB_ to let irrlicht use the jpeglib which comes with irrlicht. 249 /** If this is commented out, Irrlicht will try to compile using the jpeg lib installed in the system. 250 This is only used when _IRR_COMPILE_WITH_LIBJPEG_ is defined. */ 251 #ifdef NO_IRR_USE_NON_SYSTEM_JPEG_LIB_ 252 #undef _IRR_USE_NON_SYSTEM_JPEG_LIB_ 253 #endif 254 255 //! Define _IRR_COMPILE_WITH_LIBPNG_ to enable compiling the engine using libpng. 256 /** This enables the engine to read png images. If you comment this out, 257 the engine will no longer read .png images. */ 258 #define _IRR_COMPILE_WITH_LIBPNG_ 259 #ifdef NO_IRR_COMPILE_WITH_LIBPNG_ 260 #undef _IRR_COMPILE_WITH_LIBPNG_ 261 #endif 262 263 //! Define _IRR_USE_NON_SYSTEM_LIBPNG_ to let irrlicht use the libpng which comes with irrlicht. 264 /** If this is commented out, Irrlicht will try to compile using the libpng installed in the system. 265 This is only used when _IRR_COMPILE_WITH_LIBPNG_ is defined. */ 266 #ifdef NO_IRR_USE_NON_SYSTEM_LIB_PNG_ 267 #undef _IRR_USE_NON_SYSTEM_LIB_PNG_ 268 #endif 269 270 //! Define _IRR_D3D_NO_SHADER_DEBUGGING to disable shader debugging in D3D9 271 /** If _IRR_D3D_NO_SHADER_DEBUGGING is undefined in IrrCompileConfig.h, 272 it is possible to debug all D3D9 shaders in VisualStudio. All shaders 273 (which have been generated in memory or read from archives for example) will be emitted 274 into a temporary file at runtime for this purpose. To debug your shaders, choose 275 Debug->Direct3D->StartWithDirect3DDebugging in Visual Studio, and for every shader a 276 file named 'irr_dbg_shader_%%.vsh' or 'irr_dbg_shader_%%.psh' will be created. Drag'n'drop 277 the file you want to debug into visual studio. That's it. You can now set breakpoints and 278 watch registers, variables etc. This works with ASM, HLSL, and both with pixel and vertex shaders. 279 Note that the engine will run in D3D REF for this, which is a lot slower than HAL. */ 280 #define _IRR_D3D_NO_SHADER_DEBUGGING 281 #ifdef NO_IRR_D3D_NO_SHADER_DEBUGGING 282 #undef _IRR_D3D_NO_SHADER_DEBUGGING 283 #endif 284 285 //! Define _IRR_D3D_USE_LEGACY_HLSL_COMPILER to enable the old HLSL compiler in recent DX SDKs 286 /** This enables support for ps_1_x shaders for recent DX SDKs. Otherwise, support 287 for this shader model is not available anymore in SDKs after Oct2006. You need to 288 distribute the OCT2006_d3dx9_31_x86.cab or OCT2006_d3dx9_31_x64.cab though, in order 289 to provide the user with the proper DLL. That's why it's disabled by default. */ 290 //#define _IRR_D3D_USE_LEGACY_HLSL_COMPILER 291 #ifdef NO_IRR_D3D_USE_LEGACY_HLSL_COMPILER 292 #undef _IRR_D3D_USE_LEGACY_HLSL_COMPILER 293 #endif 294 295 //! Define _IRR_COMPILE_WITH_CG_ to enable Cg Shading Language support 296 //#define _IRR_COMPILE_WITH_CG_ 297 #ifdef NO_IRR_COMPILE_WITH_CG_ 298 #undef _IRR_COMPILE_WITH_CG_ 299 #endif 300 #if !defined(_IRR_COMPILE_WITH_OPENGL_) && !defined(_IRR_COMPILE_WITH_DIRECT3D_9_) 301 #undef _IRR_COMPILE_WITH_CG_ 302 #endif 303 304 //! Define _IRR_USE_NVIDIA_PERFHUD_ to opt-in to using the nVidia PerHUD tool 305 /** Enable, by opting-in, to use the nVidia PerfHUD performance analysis driver 306 tool <http://developer.nvidia.com/object/nvperfhud_home.html>. */ 307 #undef _IRR_USE_NVIDIA_PERFHUD_ 308 309 //! Define one of the three setting for Burning's Video Software Rasterizer 310 /** So if we were marketing guys we could say Irrlicht has 4 Software-Rasterizers. 311 In a Nutshell: 312 All Burnings Rasterizers use 32 Bit Backbuffer, 32Bit Texture & 32 Bit Z or WBuffer, 313 16 Bit/32 Bit can be adjusted on a global flag. 314 315 BURNINGVIDEO_RENDERER_BEAUTIFUL 316 32 Bit + Vertexcolor + Lighting + Per Pixel Perspective Correct + SubPixel/SubTexel Correct + 317 Bilinear Texturefiltering + WBuffer 318 319 BURNINGVIDEO_RENDERER_FAST 320 32 Bit + Per Pixel Perspective Correct + SubPixel/SubTexel Correct + WBuffer + 321 Bilinear Dithering TextureFiltering + WBuffer 322 323 BURNINGVIDEO_RENDERER_ULTRA_FAST 324 16Bit + SubPixel/SubTexel Correct + ZBuffer 325 */ 326 327 #define BURNINGVIDEO_RENDERER_BEAUTIFUL 328 //#define BURNINGVIDEO_RENDERER_FAST 329 //#define BURNINGVIDEO_RENDERER_ULTRA_FAST 330 //#define BURNINGVIDEO_RENDERER_CE 331 332 //! Uncomment the following line if you want to ignore the deprecated warnings 333 //#define IGNORE_DEPRECATED_WARNING 334 335 //! Define _IRR_COMPILE_WITH_IRR_SCENE_LOADER_ if you want to be able to load 336 /** .irr scenes using ISceneManager::loadScene */ 337 #define _IRR_COMPILE_WITH_IRR_SCENE_LOADER_ 338 #ifdef NO_IRR_COMPILE_WITH_IRR_SCENE_LOADER_ 339 #undef _IRR_COMPILE_WITH_IRR_SCENE_LOADER_ 340 #endif 341 342 //! Define _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_ if you want to use bone based 343 /** animated meshes. If you compile without this, you will be unable to load 344 B3D, MS3D or X meshes */ 345 #define _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_ 346 #ifdef NO_IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_ 347 #undef _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_ 348 #endif 349 350 #ifdef _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_ 351 //! Define _IRR_COMPILE_WITH_B3D_LOADER_ if you want to use Blitz3D files 352 #define _IRR_COMPILE_WITH_B3D_LOADER_ 353 #ifdef NO_IRR_COMPILE_WITH_B3D_LOADER_ 354 #undef _IRR_COMPILE_WITH_B3D_LOADER_ 355 #endif 356 //! Define _IRR_COMPILE_WITH_MS3D_LOADER_ if you want to Milkshape files 357 #define _IRR_COMPILE_WITH_MS3D_LOADER_ 358 #ifdef NO_IRR_COMPILE_WITH_MS3D_LOADER_ 359 #undef _IRR_COMPILE_WITH_MS3D_LOADER_ 360 #endif 361 //! Define _IRR_COMPILE_WITH_X_LOADER_ if you want to use Microsoft X files 362 #define _IRR_COMPILE_WITH_X_LOADER_ 363 #ifdef NO_IRR_COMPILE_WITH_X_LOADER_ 364 #undef _IRR_COMPILE_WITH_X_LOADER_ 365 #endif 366 //! Define _IRR_COMPILE_WITH_OGRE_LOADER_ if you want to load Ogre 3D files 367 #define _IRR_COMPILE_WITH_OGRE_LOADER_ 368 #ifdef NO_IRR_COMPILE_WITH_OGRE_LOADER_ 369 #undef _IRR_COMPILE_WITH_OGRE_LOADER_ 370 #endif 371 #endif // _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_ 372 373 //! Define _IRR_COMPILE_WITH_IRR_MESH_LOADER_ if you want to load Irrlicht Engine .irrmesh files 374 #define _IRR_COMPILE_WITH_IRR_MESH_LOADER_ 375 #ifdef NO_IRR_COMPILE_WITH_IRR_MESH_LOADER_ 376 #undef _IRR_COMPILE_WITH_IRR_MESH_LOADER_ 377 #endif 378 //! Define _IRR_COMPILE_WITH_HALFLIFE_LOADER_ if you want to load Halflife animated files 379 #define _IRR_COMPILE_WITH_HALFLIFE_LOADER_ 380 #ifdef NO_IRR_COMPILE_WITH_HALFLIFE_LOADER_ 381 #undef _IRR_COMPILE_WITH_HALFLIFE_LOADER_ 382 #endif 383 //! Define _IRR_COMPILE_WITH_MD2_LOADER_ if you want to load Quake 2 animated files 384 #define _IRR_COMPILE_WITH_MD2_LOADER_ 385 #ifdef NO_IRR_COMPILE_WITH_MD2_LOADER_ 386 #undef _IRR_COMPILE_WITH_MD2_LOADER_ 387 #endif 388 //! Define _IRR_COMPILE_WITH_MD3_LOADER_ if you want to load Quake 3 animated files 389 #define _IRR_COMPILE_WITH_MD3_LOADER_ 390 #ifdef NO_IRR_COMPILE_WITH_MD3_LOADER_ 391 #undef _IRR_COMPILE_WITH_MD3_LOADER_ 392 #endif 393 //! Define _IRR_COMPILE_WITH_3DS_LOADER_ if you want to load 3D Studio Max files 394 #define _IRR_COMPILE_WITH_3DS_LOADER_ 395 #ifdef NO_IRR_COMPILE_WITH_3DS_LOADER_ 396 #undef _IRR_COMPILE_WITH_3DS_LOADER_ 397 #endif 398 //! Define _IRR_COMPILE_WITH_COLLADA_LOADER_ if you want to load Collada files 399 #define _IRR_COMPILE_WITH_COLLADA_LOADER_ 400 #ifdef NO_IRR_COMPILE_WITH_COLLADA_LOADER_ 401 #undef _IRR_COMPILE_WITH_COLLADA_LOADER_ 402 #endif 403 //! Define _IRR_COMPILE_WITH_CSM_LOADER_ if you want to load Cartography Shop files 404 #define _IRR_COMPILE_WITH_CSM_LOADER_ 405 #ifdef NO_IRR_COMPILE_WITH_CSM_LOADER_ 406 #undef _IRR_COMPILE_WITH_CSM_LOADER_ 407 #endif 408 //! Define _IRR_COMPILE_WITH_BSP_LOADER_ if you want to load Quake 3 BSP files 409 #define _IRR_COMPILE_WITH_BSP_LOADER_ 410 #ifdef NO_IRR_COMPILE_WITH_BSP_LOADER_ 411 #undef _IRR_COMPILE_WITH_BSP_LOADER_ 412 #endif 413 //! Define _IRR_COMPILE_WITH_DMF_LOADER_ if you want to load DeleD files 414 #define _IRR_COMPILE_WITH_DMF_LOADER_ 415 #ifdef NO_IRR_COMPILE_WITH_DMF_LOADER_ 416 #undef _IRR_COMPILE_WITH_DMF_LOADER_ 417 #endif 418 //! Define _IRR_COMPILE_WITH_LMTS_LOADER_ if you want to load LMTools files 419 #define _IRR_COMPILE_WITH_LMTS_LOADER_ 420 #ifdef NO_IRR_COMPILE_WITH_LMTS_LOADER_ 421 #undef _IRR_COMPILE_WITH_LMTS_LOADER_ 422 #endif 423 //! Define _IRR_COMPILE_WITH_MY3D_LOADER_ if you want to load MY3D files 424 #define _IRR_COMPILE_WITH_MY3D_LOADER_ 425 #ifdef NO_IRR_COMPILE_WITH_MY3D_LOADER_ 426 #undef _IRR_COMPILE_WITH_MY3D_LOADER_ 427 #endif 428 //! Define _IRR_COMPILE_WITH_OBJ_LOADER_ if you want to load Wavefront OBJ files 429 #define _IRR_COMPILE_WITH_OBJ_LOADER_ 430 #ifdef NO_IRR_COMPILE_WITH_OBJ_LOADER_ 431 #undef _IRR_COMPILE_WITH_OBJ_LOADER_ 432 #endif 433 //! Define _IRR_COMPILE_WITH_OCT_LOADER_ if you want to load FSRad OCT files 434 #define _IRR_COMPILE_WITH_OCT_LOADER_ 435 #ifdef NO_IRR_COMPILE_WITH_OCT_LOADER_ 436 #undef _IRR_COMPILE_WITH_OCT_LOADER_ 437 #endif 438 //! Define _IRR_COMPILE_WITH_LWO_LOADER_ if you want to load Lightwave3D files 439 #define _IRR_COMPILE_WITH_LWO_LOADER_ 440 #ifdef NO_IRR_COMPILE_WITH_LWO_LOADER_ 441 #undef _IRR_COMPILE_WITH_LWO_LOADER_ 442 #endif 443 //! Define _IRR_COMPILE_WITH_STL_LOADER_ if you want to load stereolithography files 444 #define _IRR_COMPILE_WITH_STL_LOADER_ 445 #ifdef NO_IRR_COMPILE_WITH_STL_LOADER_ 446 #undef _IRR_COMPILE_WITH_STL_LOADER_ 447 #endif 448 //! Define _IRR_COMPILE_WITH_PLY_LOADER_ if you want to load Polygon (Stanford Triangle) files 449 #define _IRR_COMPILE_WITH_PLY_LOADER_ 450 #ifdef NO_IRR_COMPILE_WITH_PLY_LOADER_ 451 #undef _IRR_COMPILE_WITH_PLY_LOADER_ 452 #endif 453 //! Define _IRR_COMPILE_WITH_SMF_LOADER_ if you want to load 3D World Studio mesh files 454 #define _IRR_COMPILE_WITH_SMF_LOADER_ 455 #ifdef NO_IRR_COMPILE_WITH_SMF_LOADER_ 456 #undef _IRR_COMPILE_WITH_SMF_LOADER_ 457 #endif 458 459 //! Define _IRR_COMPILE_WITH_IRR_WRITER_ if you want to write static .irrMesh files 460 #define _IRR_COMPILE_WITH_IRR_WRITER_ 461 #ifdef NO_IRR_COMPILE_WITH_IRR_WRITER_ 462 #undef _IRR_COMPILE_WITH_IRR_WRITER_ 463 #endif 464 //! Define _IRR_COMPILE_WITH_COLLADA_WRITER_ if you want to write Collada files 465 #define _IRR_COMPILE_WITH_COLLADA_WRITER_ 466 #ifdef NO_IRR_COMPILE_WITH_COLLADA_WRITER_ 467 #undef _IRR_COMPILE_WITH_COLLADA_WRITER_ 468 #endif 469 //! Define _IRR_COMPILE_WITH_STL_WRITER_ if you want to write .stl files 470 #define _IRR_COMPILE_WITH_STL_WRITER_ 471 #ifdef NO_IRR_COMPILE_WITH_STL_WRITER_ 472 #undef _IRR_COMPILE_WITH_STL_WRITER_ 473 #endif 474 //! Define _IRR_COMPILE_WITH_OBJ_WRITER_ if you want to write .obj files 475 #define _IRR_COMPILE_WITH_OBJ_WRITER_ 476 #ifdef NO_IRR_COMPILE_WITH_OBJ_WRITER_ 477 #undef _IRR_COMPILE_WITH_OBJ_WRITER_ 478 #endif 479 //! Define _IRR_COMPILE_WITH_PLY_WRITER_ if you want to write .ply files 480 #define _IRR_COMPILE_WITH_PLY_WRITER_ 481 #ifdef NO_IRR_COMPILE_WITH_PLY_WRITER_ 482 #undef _IRR_COMPILE_WITH_PLY_WRITER_ 483 #endif 484 485 //! Define _IRR_COMPILE_WITH_BMP_LOADER_ if you want to load .bmp files 486 //! Disabling this loader will also disable the built-in font 487 #define _IRR_COMPILE_WITH_BMP_LOADER_ 488 #ifdef NO_IRR_COMPILE_WITH_BMP_LOADER_ 489 #undef _IRR_COMPILE_WITH_BMP_LOADER_ 490 #endif 491 //! Define _IRR_COMPILE_WITH_JPG_LOADER_ if you want to load .jpg files 492 #define _IRR_COMPILE_WITH_JPG_LOADER_ 493 #ifdef NO_IRR_COMPILE_WITH_JPG_LOADER_ 494 #undef _IRR_COMPILE_WITH_JPG_LOADER_ 495 #endif 496 //! Define _IRR_COMPILE_WITH_PCX_LOADER_ if you want to load .pcx files 497 #define _IRR_COMPILE_WITH_PCX_LOADER_ 498 #ifdef NO_IRR_COMPILE_WITH_PCX_LOADER_ 499 #undef _IRR_COMPILE_WITH_PCX_LOADER_ 500 #endif 501 //! Define _IRR_COMPILE_WITH_PNG_LOADER_ if you want to load .png files 502 #define _IRR_COMPILE_WITH_PNG_LOADER_ 503 #ifdef NO_IRR_COMPILE_WITH_PNG_LOADER_ 504 #undef _IRR_COMPILE_WITH_PNG_LOADER_ 505 #endif 506 //! Define _IRR_COMPILE_WITH_PPM_LOADER_ if you want to load .ppm/.pgm/.pbm files 507 #define _IRR_COMPILE_WITH_PPM_LOADER_ 508 #ifdef NO_IRR_COMPILE_WITH_PPM_LOADER_ 509 #undef _IRR_COMPILE_WITH_PPM_LOADER_ 510 #endif 511 //! Define _IRR_COMPILE_WITH_PSD_LOADER_ if you want to load .psd files 512 #define _IRR_COMPILE_WITH_PSD_LOADER_ 513 #ifdef NO_IRR_COMPILE_WITH_PSD_LOADER_ 514 #undef _IRR_COMPILE_WITH_PSD_LOADER_ 515 #endif 516 //! Define _IRR_COMPILE_WITH_DDS_LOADER_ if you want to load .dds files 517 // Outcommented because 518 // a) it doesn't compile on 64-bit currently 519 // b) anyone enabling it should be aware that S3TC compression algorithm which might be used in that loader 520 // is patented in the US by S3 and they do collect license fees when it's used in applications. 521 // So if you are unfortunate enough to develop applications for US market and their broken patent system be careful. 522 // #define _IRR_COMPILE_WITH_DDS_LOADER_ 523 #ifdef NO_IRR_COMPILE_WITH_DDS_LOADER_ 524 #undef _IRR_COMPILE_WITH_DDS_LOADER_ 525 #endif 526 //! Define _IRR_COMPILE_WITH_TGA_LOADER_ if you want to load .tga files 527 #define _IRR_COMPILE_WITH_TGA_LOADER_ 528 #ifdef NO_IRR_COMPILE_WITH_TGA_LOADER_ 529 #undef _IRR_COMPILE_WITH_TGA_LOADER_ 530 #endif 531 //! Define _IRR_COMPILE_WITH_WAL_LOADER_ if you want to load .wal files 532 #define _IRR_COMPILE_WITH_WAL_LOADER_ 533 #ifdef NO_IRR_COMPILE_WITH_WAL_LOADER_ 534 #undef _IRR_COMPILE_WITH_WAL_LOADER_ 535 #endif 536 //! Define _IRR_COMPILE_WITH_LMP_LOADER_ if you want to load .lmp files 537 #define _IRR_COMPILE_WITH_LMP_LOADER_ 538 #ifdef NO_IRR_COMPILE_WITH_LMP_LOADER_ 539 #undef _IRR_COMPILE_WITH_LMP_LOADER_ 540 #endif 541 //! Define _IRR_COMPILE_WITH_RGB_LOADER_ if you want to load Silicon Graphics .rgb/.rgba/.sgi/.int/.inta/.bw files 542 #define _IRR_COMPILE_WITH_RGB_LOADER_ 543 #ifdef NO_IRR_COMPILE_WITH_RGB_LOADER_ 544 #undef _IRR_COMPILE_WITH_RGB_LOADER_ 545 #endif 546 547 //! Define _IRR_COMPILE_WITH_BMP_WRITER_ if you want to write .bmp files 548 #define _IRR_COMPILE_WITH_BMP_WRITER_ 549 #ifdef NO_IRR_COMPILE_WITH_BMP_WRITER_ 550 #undef _IRR_COMPILE_WITH_BMP_WRITER_ 551 #endif 552 //! Define _IRR_COMPILE_WITH_JPG_WRITER_ if you want to write .jpg files 553 #define _IRR_COMPILE_WITH_JPG_WRITER_ 554 #ifdef NO_IRR_COMPILE_WITH_JPG_WRITER_ 555 #undef _IRR_COMPILE_WITH_JPG_WRITER_ 556 #endif 557 //! Define _IRR_COMPILE_WITH_PCX_WRITER_ if you want to write .pcx files 558 #define _IRR_COMPILE_WITH_PCX_WRITER_ 559 #ifdef NO_IRR_COMPILE_WITH_PCX_WRITER_ 560 #undef _IRR_COMPILE_WITH_PCX_WRITER_ 561 #endif 562 //! Define _IRR_COMPILE_WITH_PNG_WRITER_ if you want to write .png files 563 #define _IRR_COMPILE_WITH_PNG_WRITER_ 564 #ifdef NO_IRR_COMPILE_WITH_PNG_WRITER_ 565 #undef _IRR_COMPILE_WITH_PNG_WRITER_ 566 #endif 567 //! Define _IRR_COMPILE_WITH_PPM_WRITER_ if you want to write .ppm files 568 #define _IRR_COMPILE_WITH_PPM_WRITER_ 569 #ifdef NO_IRR_COMPILE_WITH_PPM_WRITER_ 570 #undef _IRR_COMPILE_WITH_PPM_WRITER_ 571 #endif 572 //! Define _IRR_COMPILE_WITH_PSD_WRITER_ if you want to write .psd files 573 #define _IRR_COMPILE_WITH_PSD_WRITER_ 574 #ifdef NO_IRR_COMPILE_WITH_PSD_WRITER_ 575 #undef _IRR_COMPILE_WITH_PSD_WRITER_ 576 #endif 577 //! Define _IRR_COMPILE_WITH_TGA_WRITER_ if you want to write .tga files 578 #define _IRR_COMPILE_WITH_TGA_WRITER_ 579 #ifdef NO_IRR_COMPILE_WITH_TGA_WRITER_ 580 #undef _IRR_COMPILE_WITH_TGA_WRITER_ 581 #endif 582 583 //! Define __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_ if you want to open ZIP and GZIP archives 584 /** ZIP reading has several more options below to configure. */ 585 #define __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_ 586 #ifdef NO__IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_ 587 #undef __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_ 588 #endif 589 #ifdef __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_ 590 //! Define _IRR_COMPILE_WITH_ZLIB_ to enable compiling the engine using zlib. 591 /** This enables the engine to read from compressed .zip archives. If you 592 disable this feature, the engine can still read archives, but only uncompressed 593 ones. */ 594 #define _IRR_COMPILE_WITH_ZLIB_ 595 #ifdef NO_IRR_COMPILE_WITH_ZLIB_ 596 #undef _IRR_COMPILE_WITH_ZLIB_ 597 #endif 598 //! Define _IRR_USE_NON_SYSTEM_ZLIB_ to let irrlicht use the zlib which comes with irrlicht. 599 /** If this is commented out, Irrlicht will try to compile using the zlib 600 installed on the system. This is only used when _IRR_COMPILE_WITH_ZLIB_ is 601 defined. */ 602 #ifdef NO_IRR_USE_NON_SYSTEM_ZLIB_ 603 #undef _IRR_USE_NON_SYSTEM_ZLIB_ 604 #endif 605 //! Define _IRR_COMPILE_WITH_ZIP_ENCRYPTION_ if you want to read AES-encrypted ZIP archives 606 #define _IRR_COMPILE_WITH_ZIP_ENCRYPTION_ 607 #ifdef NO_IRR_COMPILE_WITH_ZIP_ENCRYPTION_ 608 #undef _IRR_COMPILE_WITH_ZIP_ENCRYPTION_ 609 #endif 610 //! Define _IRR_COMPILE_WITH_BZIP2_ if you want to support bzip2 compressed zip archives 611 /** bzip2 is superior to the original zip file compression modes, but requires 612 a certain amount of memory for decompression and adds several files to the 613 library. */ 614 #define _IRR_COMPILE_WITH_BZIP2_ 615 #ifdef NO_IRR_COMPILE_WITH_BZIP2_ 616 #undef _IRR_COMPILE_WITH_BZIP2_ 617 #endif 618 //! Define _IRR_USE_NON_SYSTEM_BZLIB_ to let irrlicht use the bzlib which comes with irrlicht. 619 /** If this is commented out, Irrlicht will try to compile using the bzlib 620 installed on the system. This is only used when _IRR_COMPILE_WITH_BZLIB_ is 621 defined. */ 622 #ifdef NO_IRR_USE_NON_SYSTEM_BZLIB_ 623 #undef _IRR_USE_NON_SYSTEM_BZLIB_ 624 #endif 625 //! Define _IRR_COMPILE_WITH_LZMA_ if you want to use LZMA compressed zip files. 626 /** LZMA is a very efficient compression code, known from 7zip. Irrlicht 627 currently only supports zip archives, though. */ 628 #define _IRR_COMPILE_WITH_LZMA_ 629 #ifdef NO_IRR_COMPILE_WITH_LZMA_ 630 #undef _IRR_COMPILE_WITH_LZMA_ 631 #endif 632 #endif 633 634 //! Define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_ if you want to mount folders as archives 635 #define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_ 636 #ifdef NO__IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_ 637 #undef __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_ 638 #endif 639 //! Define __IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_ if you want to open ID software PAK archives 640 #define __IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_ 641 #ifdef NO__IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_ 642 #undef __IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_ 643 #endif 644 //! Define __IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_ if you want to open Nebula Device NPK archives 645 #define __IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_ 646 #ifdef NO__IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_ 647 #undef __IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_ 648 #endif 649 //! Define __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_ if you want to open TAR archives 650 #define __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_ 651 #ifdef NO__IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_ 652 #undef __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_ 653 #endif 654 //! Define __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_ if you want to open WAD archives 655 #define __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_ 656 #ifdef NO__IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_ 657 #undef __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_ 658 #endif 659 660 //! Set FPU settings 661 /** Irrlicht should use approximate float and integer fpu techniques 662 precision will be lower but speed higher. currently X86 only 663 */ 664 #if !defined(_IRR_OSX_PLATFORM_) && !defined(_IRR_SOLARIS_PLATFORM_) 665 //#define IRRLICHT_FAST_MATH 666 #ifdef NO_IRRLICHT_FAST_MATH 667 #undef IRRLICHT_FAST_MATH 668 #endif 669 #endif 670 671 // Some cleanup and standard stuff 672 673 #ifdef _IRR_WINDOWS_API_ 674 675 // To build Irrlicht as a static library, you must define _IRR_STATIC_LIB_ in both the 676 // Irrlicht build, *and* in the user application, before #including <irrlicht.h> 677 #ifndef _IRR_STATIC_LIB_ 678 #ifdef IRRLICHT_EXPORTS 679 #define IRRLICHT_API __declspec(dllexport) 680 #else 681 #define IRRLICHT_API __declspec(dllimport) 682 #endif // IRRLICHT_EXPORT 683 #else 684 #define IRRLICHT_API 685 #endif // _IRR_STATIC_LIB_ 686 687 // Declare the calling convention. 688 #if defined(_STDCALL_SUPPORTED) 689 #define IRRCALLCONV __stdcall 690 #else 691 #define IRRCALLCONV __cdecl 692 #endif // STDCALL_SUPPORTED 693 694 #else // _IRR_WINDOWS_API_ 695 696 // Force symbol export in shared libraries built with gcc. 697 #if (__GNUC__ >= 4) && !defined(_IRR_STATIC_LIB_) && defined(IRRLICHT_EXPORTS) 698 #define IRRLICHT_API __attribute__ ((visibility("default"))) 699 #else 700 #define IRRLICHT_API 701 #endif 702 703 #define IRRCALLCONV 704 705 #endif // _IRR_WINDOWS_API_ 706 707 // We need to disable DIRECT3D9 support for Visual Studio 6.0 because 708 // those $%&$!! disabled support for it since Dec. 2004 and users are complaining 709 // about linker errors. Comment this out only if you are knowing what you are 710 // doing. (Which means you have an old DX9 SDK and VisualStudio6). 711 #ifdef _MSC_VER 712 #if (_MSC_VER < 1300 && !defined(__GNUC__)) 713 #undef _IRR_COMPILE_WITH_DIRECT3D_9_ 714 #pragma message("Compiling Irrlicht with Visual Studio 6.0, support for DX9 is disabled.") 715 #endif 716 #endif 717 718 // XBox does not have OpenGL or DirectX9 719 #if defined(_IRR_XBOX_PLATFORM_) 720 #undef _IRR_COMPILE_WITH_OPENGL_ 721 #undef _IRR_COMPILE_WITH_DIRECT3D_9_ 722 #endif 723 724 //! WinCE does not have OpenGL or DirectX9. use minimal loaders 725 #if defined(_WIN32_WCE) 726 #undef _IRR_COMPILE_WITH_OPENGL_ 727 #undef _IRR_COMPILE_WITH_DIRECT3D_8_ 728 #undef _IRR_COMPILE_WITH_DIRECT3D_9_ 729 730 #undef BURNINGVIDEO_RENDERER_BEAUTIFUL 731 #undef BURNINGVIDEO_RENDERER_FAST 732 #undef BURNINGVIDEO_RENDERER_ULTRA_FAST 733 #define BURNINGVIDEO_RENDERER_CE 734 735 #undef _IRR_COMPILE_WITH_WINDOWS_DEVICE_ 736 #define _IRR_COMPILE_WITH_WINDOWS_CE_DEVICE_ 737 //#define _IRR_WCHAR_FILESYSTEM 738 739 #undef _IRR_COMPILE_WITH_IRR_MESH_LOADER_ 740 //#undef _IRR_COMPILE_WITH_MD2_LOADER_ 741 #undef _IRR_COMPILE_WITH_MD3_LOADER_ 742 #undef _IRR_COMPILE_WITH_3DS_LOADER_ 743 #undef _IRR_COMPILE_WITH_COLLADA_LOADER_ 744 #undef _IRR_COMPILE_WITH_CSM_LOADER_ 745 #undef _IRR_COMPILE_WITH_BSP_LOADER_ 746 #undef _IRR_COMPILE_WITH_DMF_LOADER_ 747 #undef _IRR_COMPILE_WITH_LMTS_LOADER_ 748 #undef _IRR_COMPILE_WITH_MY3D_LOADER_ 749 #undef _IRR_COMPILE_WITH_OBJ_LOADER_ 750 #undef _IRR_COMPILE_WITH_OCT_LOADER_ 751 #undef _IRR_COMPILE_WITH_OGRE_LOADER_ 752 #undef _IRR_COMPILE_WITH_LWO_LOADER_ 753 #undef _IRR_COMPILE_WITH_STL_LOADER_ 754 #undef _IRR_COMPILE_WITH_IRR_WRITER_ 755 #undef _IRR_COMPILE_WITH_COLLADA_WRITER_ 756 #undef _IRR_COMPILE_WITH_STL_WRITER_ 757 #undef _IRR_COMPILE_WITH_OBJ_WRITER_ 758 //#undef _IRR_COMPILE_WITH_BMP_LOADER_ 759 //#undef _IRR_COMPILE_WITH_JPG_LOADER_ 760 #undef _IRR_COMPILE_WITH_PCX_LOADER_ 761 //#undef _IRR_COMPILE_WITH_PNG_LOADER_ 762 #undef _IRR_COMPILE_WITH_PPM_LOADER_ 763 #undef _IRR_COMPILE_WITH_PSD_LOADER_ 764 //#undef _IRR_COMPILE_WITH_TGA_LOADER_ 765 #undef _IRR_COMPILE_WITH_WAL_LOADER_ 766 #undef _IRR_COMPILE_WITH_BMP_WRITER_ 767 #undef _IRR_COMPILE_WITH_JPG_WRITER_ 768 #undef _IRR_COMPILE_WITH_PCX_WRITER_ 769 #undef _IRR_COMPILE_WITH_PNG_WRITER_ 770 #undef _IRR_COMPILE_WITH_PPM_WRITER_ 771 #undef _IRR_COMPILE_WITH_PSD_WRITER_ 772 #undef _IRR_COMPILE_WITH_TGA_WRITER_ 773 774 #endif 775 776 #ifndef _IRR_WINDOWS_API_ 777 #undef _IRR_WCHAR_FILESYSTEM 778 #endif 779 780 #if defined(__sparc__) || defined(__sun__) 781 #define __BIG_ENDIAN__ 782 #endif 783 784 #if defined(_IRR_SOLARIS_PLATFORM_) 785 #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_ 786 #endif 787 788 //! Define __IRR_HAS_S64 if the irr::s64 type should be enable (needs long long, available on most platforms, but not part of ISO C++ 98) 789 #define __IRR_HAS_S64 790 #ifdef NO__IRR_HAS_S64 791 #undef __IRR_HAS_S64 792 #endif 793 794 #if defined(__BORLANDC__) 795 #include <tchar.h> 796 797 // Borland 5.5.1 does not have _strcmpi defined 798 #if __BORLANDC__ == 0x551 799 // #define _strcmpi strcmpi 800 #undef _tfinddata_t 801 #undef _tfindfirst 802 #undef _tfindnext 803 804 #define _tfinddata_t __tfinddata_t 805 #define _tfindfirst __tfindfirst 806 #define _tfindnext __tfindnext 807 typedef long intptr_t; 808 #endif 809 810 #endif 811 812 #ifdef _DEBUG 813 //! A few attributes are written in CSceneManager when _IRR_SCENEMANAGER_DEBUG is enabled 814 // NOTE: Those attributes were used always until 1.8.0 and became a global define for 1.8.1 815 // which is only enabled in debug because it had a large (sometimes >5%) impact on speed. 816 // A better solution in the long run is to break the interface and remove _all_ attribute 817 // access in functions like CSceneManager::drawAll and instead put that information in some 818 // own struct/class or in CSceneManager. 819 // See http://irrlicht.sourceforge.net/forum/viewtopic.php?f=2&t=48211 for the discussion. 820 #define _IRR_SCENEMANAGER_DEBUG 821 #ifdef NO_IRR_SCENEMANAGER_DEBUG 822 #undef _IRR_SCENEMANAGER_DEBUG 823 #endif 824 #endif 825 826 #endif // __IRR_COMPILE_CONFIG_H_INCLUDED__ 827 828