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