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