Irrlicht 3D Engine
IrrCompileConfig.h
Go to the documentation of this file.
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 
9 #define IRRLICHT_VERSION_MAJOR 1
10 #define IRRLICHT_VERSION_MINOR 8
11 #define IRRLICHT_VERSION_REVISION 4
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.4"
16 
17 #include <stdio.h> // TODO: Although included elsewhere this is required at least for mingw
18 
29 
39 
45 
46 
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 
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 
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 
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 #include <endian.h>
104  #if __BYTE_ORDER == __BIG_ENDIAN
105  #define __BIG_ENDIAN__
106  #endif
107 #endif
108 #define _IRR_POSIX_API_
109 #define _IRR_COMPILE_WITH_X11_DEVICE_
110 #endif
111 
112 
114 #define _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
115 #ifdef NO_IRR_COMPILE_WITH_JOYSTICK_EVENTS_
116 #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
117 #endif
118 
119 
121 #define _IRR_MATERIAL_MAX_TEXTURES_ 4
122 
125 
138 #if defined(_IRR_WINDOWS_API_) && (!defined(__GNUC__) || defined(IRR_COMPILE_WITH_DX9_DEV_PACK))
139 
141 
143 #define _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
144 #ifdef NO_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
145 #undef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
146 #endif
147 // can't get this to compile currently under borland, can be removed if someone has a better solution
148 #if defined(__BORLANDC__)
149 #undef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
150 #endif
151 
153 // #define _IRR_COMPILE_WITH_DIRECT3D_8_
154 #define _IRR_COMPILE_WITH_DIRECT3D_9_
155 
156 #ifdef NO_IRR_COMPILE_WITH_DIRECT3D_8_
157 #undef _IRR_COMPILE_WITH_DIRECT3D_8_
158 #endif
159 #ifdef NO_IRR_COMPILE_WITH_DIRECT3D_9_
160 #undef _IRR_COMPILE_WITH_DIRECT3D_9_
161 #endif
162 
163 #endif
164 
166 
168 #define _IRR_COMPILE_WITH_OPENGL_
169 #ifdef NO_IRR_COMPILE_WITH_OPENGL_
170 #undef _IRR_COMPILE_WITH_OPENGL_
171 #endif
172 
174 
176 #define _IRR_COMPILE_WITH_SOFTWARE_
177 #ifdef NO_IRR_COMPILE_WITH_SOFTWARE_
178 #undef _IRR_COMPILE_WITH_SOFTWARE_
179 #endif
180 
182 
183 #define _IRR_COMPILE_WITH_BURNINGSVIDEO_
184 #ifdef NO_IRR_COMPILE_WITH_BURNINGSVIDEO_
185 #undef _IRR_COMPILE_WITH_BURNINGSVIDEO_
186 #endif
187 
189 
191 // Only used in LinuxDevice.
192 #define _IRR_COMPILE_WITH_X11_
193 #ifdef NO_IRR_COMPILE_WITH_X11_
194 #undef _IRR_COMPILE_WITH_X11_
195 #endif
196 
198 
200 #if !defined(_IRR_OSX_PLATFORM_) && !defined(_IRR_SOLARIS_PLATFORM_)
201 #define _IRR_OPENGL_USE_EXTPOINTER_
202 #endif
203 
207 #if defined(_IRR_LINUX_PLATFORM_) && defined(_IRR_COMPILE_WITH_X11_)
208 #define _IRR_LINUX_X11_VIDMODE_
209 //#define _IRR_LINUX_X11_RANDR_
210 #ifdef NO_IRR_LINUX_X11_VIDMODE_
211 #undef _IRR_LINUX_X11_VIDMODE_
212 #endif
213 #ifdef NO_IRR_LINUX_X11_RANDR_
214 #undef _IRR_LINUX_X11_RANDR_
215 #endif
216 
220 //#define _IRR_LINUX_XCURSOR_
221 #ifdef NO_IRR_LINUX_XCURSOR_
222 #undef _IRR_LINUX_XCURSOR_
223 #endif
224 
225 #endif
226 
228 
230 #define _IRR_COMPILE_WITH_GUI_
231 #ifdef NO_IRR_COMPILE_WITH_GUI_
232 #undef _IRR_COMPILE_WITH_GUI_
233 #endif
234 
236 
240 //#define _IRR_WCHAR_FILESYSTEM
241 #ifdef NO_IRR_WCHAR_FILESYSTEM
242 #undef _IRR_WCHAR_FILESYSTEM
243 #endif
244 
246 
249 #define _IRR_COMPILE_WITH_ZLIB_
250 
252 
254 #undef _IRR_USE_NON_SYSTEM_ZLIB_
255 
257 
259 #define _IRR_COMPILE_WITH_LIBJPEG_
260 #ifdef NO_IRR_COMPILE_WITH_LIBJPEG_
261 #undef _IRR_COMPILE_WITH_LIBJPEG_
262 #endif
263 
265 
267 #undef _IRR_USE_NON_SYSTEM_JPEG_LIB_
268 
270 
272 #define _IRR_COMPILE_WITH_LIBPNG_
273 #ifdef NO_IRR_COMPILE_WITH_LIBPNG_
274 #undef _IRR_COMPILE_WITH_LIBPNG_
275 #endif
276 
278 
280 #undef _IRR_USE_NON_SYSTEM_LIB_PNG_
281 
283 
292 #define _IRR_D3D_NO_SHADER_DEBUGGING
293 #ifdef NO_IRR_D3D_NO_SHADER_DEBUGGING
294 #undef _IRR_D3D_NO_SHADER_DEBUGGING
295 #endif
296 
298 
302 //#define _IRR_D3D_USE_LEGACY_HLSL_COMPILER
303 #ifdef NO_IRR_D3D_USE_LEGACY_HLSL_COMPILER
304 #undef _IRR_D3D_USE_LEGACY_HLSL_COMPILER
305 #endif
306 
308 //#define _IRR_COMPILE_WITH_CG_
309 #ifdef NO_IRR_COMPILE_WITH_CG_
310 #undef _IRR_COMPILE_WITH_CG_
311 #endif
312 #if !defined(_IRR_COMPILE_WITH_OPENGL_) && !defined(_IRR_COMPILE_WITH_DIRECT3D_9_)
313 #undef _IRR_COMPILE_WITH_CG_
314 #endif
315 
317 
319 #undef _IRR_USE_NVIDIA_PERFHUD_
320 
322 
339 #define BURNINGVIDEO_RENDERER_BEAUTIFUL
340 //#define BURNINGVIDEO_RENDERER_FAST
341 //#define BURNINGVIDEO_RENDERER_ULTRA_FAST
342 //#define BURNINGVIDEO_RENDERER_CE
343 
345 //#define IGNORE_DEPRECATED_WARNING
346 
348 
349 #define _IRR_COMPILE_WITH_IRR_SCENE_LOADER_
350 #ifdef NO_IRR_COMPILE_WITH_IRR_SCENE_LOADER_
351 #undef _IRR_COMPILE_WITH_IRR_SCENE_LOADER_
352 #endif
353 
355 
357 #define _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
358 #ifdef NO_IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
359 #undef _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
360 #endif
361 
362 #ifdef _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
363 #define _IRR_COMPILE_WITH_B3D_LOADER_
365 #ifdef NO_IRR_COMPILE_WITH_B3D_LOADER_
366 #undef _IRR_COMPILE_WITH_B3D_LOADER_
367 #endif
368 #define _IRR_COMPILE_WITH_MS3D_LOADER_
370 #ifdef NO_IRR_COMPILE_WITH_MS3D_LOADER_
371 #undef _IRR_COMPILE_WITH_MS3D_LOADER_
372 #endif
373 #define _IRR_COMPILE_WITH_X_LOADER_
375 #ifdef NO_IRR_COMPILE_WITH_X_LOADER_
376 #undef _IRR_COMPILE_WITH_X_LOADER_
377 #endif
378 #define _IRR_COMPILE_WITH_OGRE_LOADER_
380 #ifdef NO_IRR_COMPILE_WITH_OGRE_LOADER_
381 #undef _IRR_COMPILE_WITH_OGRE_LOADER_
382 #endif
383 #endif // _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
384 
386 #define _IRR_COMPILE_WITH_IRR_MESH_LOADER_
387 #ifdef NO_IRR_COMPILE_WITH_IRR_MESH_LOADER_
388 #undef _IRR_COMPILE_WITH_IRR_MESH_LOADER_
389 #endif
390 #define _IRR_COMPILE_WITH_HALFLIFE_LOADER_
392 #ifdef NO_IRR_COMPILE_WITH_HALFLIFE_LOADER_
393 #undef _IRR_COMPILE_WITH_HALFLIFE_LOADER_
394 #endif
395 #define _IRR_COMPILE_WITH_MD2_LOADER_
397 #ifdef NO_IRR_COMPILE_WITH_MD2_LOADER_
398 #undef _IRR_COMPILE_WITH_MD2_LOADER_
399 #endif
400 #define _IRR_COMPILE_WITH_MD3_LOADER_
402 #ifdef NO_IRR_COMPILE_WITH_MD3_LOADER_
403 #undef _IRR_COMPILE_WITH_MD3_LOADER_
404 #endif
405 #define _IRR_COMPILE_WITH_3DS_LOADER_
407 #ifdef NO_IRR_COMPILE_WITH_3DS_LOADER_
408 #undef _IRR_COMPILE_WITH_3DS_LOADER_
409 #endif
410 #define _IRR_COMPILE_WITH_COLLADA_LOADER_
412 #ifdef NO_IRR_COMPILE_WITH_COLLADA_LOADER_
413 #undef _IRR_COMPILE_WITH_COLLADA_LOADER_
414 #endif
415 #define _IRR_COMPILE_WITH_CSM_LOADER_
417 #ifdef NO_IRR_COMPILE_WITH_CSM_LOADER_
418 #undef _IRR_COMPILE_WITH_CSM_LOADER_
419 #endif
420 #define _IRR_COMPILE_WITH_BSP_LOADER_
422 #ifdef NO_IRR_COMPILE_WITH_BSP_LOADER_
423 #undef _IRR_COMPILE_WITH_BSP_LOADER_
424 #endif
425 #define _IRR_COMPILE_WITH_DMF_LOADER_
427 #ifdef NO_IRR_COMPILE_WITH_DMF_LOADER_
428 #undef _IRR_COMPILE_WITH_DMF_LOADER_
429 #endif
430 #define _IRR_COMPILE_WITH_LMTS_LOADER_
432 #ifdef NO_IRR_COMPILE_WITH_LMTS_LOADER_
433 #undef _IRR_COMPILE_WITH_LMTS_LOADER_
434 #endif
435 #define _IRR_COMPILE_WITH_MY3D_LOADER_
437 #ifdef NO_IRR_COMPILE_WITH_MY3D_LOADER_
438 #undef _IRR_COMPILE_WITH_MY3D_LOADER_
439 #endif
440 #define _IRR_COMPILE_WITH_OBJ_LOADER_
442 #ifdef NO_IRR_COMPILE_WITH_OBJ_LOADER_
443 #undef _IRR_COMPILE_WITH_OBJ_LOADER_
444 #endif
445 #define _IRR_COMPILE_WITH_OCT_LOADER_
447 #ifdef NO_IRR_COMPILE_WITH_OCT_LOADER_
448 #undef _IRR_COMPILE_WITH_OCT_LOADER_
449 #endif
450 #define _IRR_COMPILE_WITH_LWO_LOADER_
452 #ifdef NO_IRR_COMPILE_WITH_LWO_LOADER_
453 #undef _IRR_COMPILE_WITH_LWO_LOADER_
454 #endif
455 #define _IRR_COMPILE_WITH_STL_LOADER_
457 #ifdef NO_IRR_COMPILE_WITH_STL_LOADER_
458 #undef _IRR_COMPILE_WITH_STL_LOADER_
459 #endif
460 #define _IRR_COMPILE_WITH_PLY_LOADER_
462 #ifdef NO_IRR_COMPILE_WITH_PLY_LOADER_
463 #undef _IRR_COMPILE_WITH_PLY_LOADER_
464 #endif
465 #define _IRR_COMPILE_WITH_SMF_LOADER_
467 #ifdef NO_IRR_COMPILE_WITH_SMF_LOADER_
468 #undef _IRR_COMPILE_WITH_SMF_LOADER_
469 #endif
470 
472 #define _IRR_COMPILE_WITH_IRR_WRITER_
473 #ifdef NO_IRR_COMPILE_WITH_IRR_WRITER_
474 #undef _IRR_COMPILE_WITH_IRR_WRITER_
475 #endif
476 #define _IRR_COMPILE_WITH_COLLADA_WRITER_
478 #ifdef NO_IRR_COMPILE_WITH_COLLADA_WRITER_
479 #undef _IRR_COMPILE_WITH_COLLADA_WRITER_
480 #endif
481 #define _IRR_COMPILE_WITH_STL_WRITER_
483 #ifdef NO_IRR_COMPILE_WITH_STL_WRITER_
484 #undef _IRR_COMPILE_WITH_STL_WRITER_
485 #endif
486 #define _IRR_COMPILE_WITH_OBJ_WRITER_
488 #ifdef NO_IRR_COMPILE_WITH_OBJ_WRITER_
489 #undef _IRR_COMPILE_WITH_OBJ_WRITER_
490 #endif
491 #define _IRR_COMPILE_WITH_PLY_WRITER_
493 #ifdef NO_IRR_COMPILE_WITH_PLY_WRITER_
494 #undef _IRR_COMPILE_WITH_PLY_WRITER_
495 #endif
496 
499 #define _IRR_COMPILE_WITH_BMP_LOADER_
500 #ifdef NO_IRR_COMPILE_WITH_BMP_LOADER_
501 #undef _IRR_COMPILE_WITH_BMP_LOADER_
502 #endif
503 #define _IRR_COMPILE_WITH_JPG_LOADER_
505 #ifdef NO_IRR_COMPILE_WITH_JPG_LOADER_
506 #undef _IRR_COMPILE_WITH_JPG_LOADER_
507 #endif
508 #define _IRR_COMPILE_WITH_PCX_LOADER_
510 #ifdef NO_IRR_COMPILE_WITH_PCX_LOADER_
511 #undef _IRR_COMPILE_WITH_PCX_LOADER_
512 #endif
513 #define _IRR_COMPILE_WITH_PNG_LOADER_
515 #ifdef NO_IRR_COMPILE_WITH_PNG_LOADER_
516 #undef _IRR_COMPILE_WITH_PNG_LOADER_
517 #endif
518 #define _IRR_COMPILE_WITH_PPM_LOADER_
520 #ifdef NO_IRR_COMPILE_WITH_PPM_LOADER_
521 #undef _IRR_COMPILE_WITH_PPM_LOADER_
522 #endif
523 #define _IRR_COMPILE_WITH_PSD_LOADER_
525 #ifdef NO_IRR_COMPILE_WITH_PSD_LOADER_
526 #undef _IRR_COMPILE_WITH_PSD_LOADER_
527 #endif
528 // Outcommented because
530 // a) it doesn't compile on 64-bit currently
531 // b) anyone enabling it should be aware that S3TC compression algorithm which might be used in that loader
532 // is patented in the US by S3 and they do collect license fees when it's used in applications.
533 // So if you are unfortunate enough to develop applications for US market and their broken patent system be careful.
534 // #define _IRR_COMPILE_WITH_DDS_LOADER_
535 #ifdef NO_IRR_COMPILE_WITH_DDS_LOADER_
536 #undef _IRR_COMPILE_WITH_DDS_LOADER_
537 #endif
538 #define _IRR_COMPILE_WITH_TGA_LOADER_
540 #ifdef NO_IRR_COMPILE_WITH_TGA_LOADER_
541 #undef _IRR_COMPILE_WITH_TGA_LOADER_
542 #endif
543 #define _IRR_COMPILE_WITH_WAL_LOADER_
545 #ifdef NO_IRR_COMPILE_WITH_WAL_LOADER_
546 #undef _IRR_COMPILE_WITH_WAL_LOADER_
547 #endif
548 #define _IRR_COMPILE_WITH_LMP_LOADER_
550 #ifdef NO_IRR_COMPILE_WITH_LMP_LOADER_
551 #undef _IRR_COMPILE_WITH_LMP_LOADER_
552 #endif
553 #define _IRR_COMPILE_WITH_RGB_LOADER_
555 #ifdef NO_IRR_COMPILE_WITH_RGB_LOADER_
556 #undef _IRR_COMPILE_WITH_RGB_LOADER_
557 #endif
558 
560 #define _IRR_COMPILE_WITH_BMP_WRITER_
561 #ifdef NO_IRR_COMPILE_WITH_BMP_WRITER_
562 #undef _IRR_COMPILE_WITH_BMP_WRITER_
563 #endif
564 #define _IRR_COMPILE_WITH_JPG_WRITER_
566 #ifdef NO_IRR_COMPILE_WITH_JPG_WRITER_
567 #undef _IRR_COMPILE_WITH_JPG_WRITER_
568 #endif
569 #define _IRR_COMPILE_WITH_PCX_WRITER_
571 #ifdef NO_IRR_COMPILE_WITH_PCX_WRITER_
572 #undef _IRR_COMPILE_WITH_PCX_WRITER_
573 #endif
574 #define _IRR_COMPILE_WITH_PNG_WRITER_
576 #ifdef NO_IRR_COMPILE_WITH_PNG_WRITER_
577 #undef _IRR_COMPILE_WITH_PNG_WRITER_
578 #endif
579 #define _IRR_COMPILE_WITH_PPM_WRITER_
581 #ifdef NO_IRR_COMPILE_WITH_PPM_WRITER_
582 #undef _IRR_COMPILE_WITH_PPM_WRITER_
583 #endif
584 #define _IRR_COMPILE_WITH_PSD_WRITER_
586 #ifdef NO_IRR_COMPILE_WITH_PSD_WRITER_
587 #undef _IRR_COMPILE_WITH_PSD_WRITER_
588 #endif
589 #define _IRR_COMPILE_WITH_TGA_WRITER_
591 #ifdef NO_IRR_COMPILE_WITH_TGA_WRITER_
592 #undef _IRR_COMPILE_WITH_TGA_WRITER_
593 #endif
594 
596 
597 #define __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
598 #ifdef NO__IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
599 #undef __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
600 #endif
601 #ifdef __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
602 
606 #define _IRR_COMPILE_WITH_ZLIB_
607 #ifdef NO_IRR_COMPILE_WITH_ZLIB_
608 #undef _IRR_COMPILE_WITH_ZLIB_
609 #endif
610 
614 #undef _IRR_USE_NON_SYSTEM_ZLIB_
615 #define _IRR_COMPILE_WITH_ZIP_ENCRYPTION_
617 #ifdef NO_IRR_COMPILE_WITH_ZIP_ENCRYPTION_
618 #undef _IRR_COMPILE_WITH_ZIP_ENCRYPTION_
619 #endif
620 
624 #define _IRR_COMPILE_WITH_BZIP2_
625 #ifdef NO_IRR_COMPILE_WITH_BZIP2_
626 #undef _IRR_COMPILE_WITH_BZIP2_
627 #endif
628 
632 #undef _IRR_USE_NON_SYSTEM_BZLIB_
633 
636 #undef _IRR_COMPILE_WITH_LZMA_
637 #endif
638 
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_
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_
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_
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_
661 #ifdef NO__IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
662 #undef __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
663 #endif
664 
666 
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 
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(_IRR_SOLARIS_PLATFORM_) || defined(__FreeBSD_kernel__) || defined(__gnu_hurd__)
786  #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
787 #endif
788 
790 #define __IRR_HAS_S64
791 #ifdef NO__IRR_HAS_S64
792 #undef __IRR_HAS_S64
793 #endif
794 
795 #if defined(__BORLANDC__)
796  #include <tchar.h>
797 
798  // Borland 5.5.1 does not have _strcmpi defined
799  #if __BORLANDC__ == 0x551
800  // #define _strcmpi strcmpi
801  #undef _tfinddata_t
802  #undef _tfindfirst
803  #undef _tfindnext
804 
805  #define _tfinddata_t __tfinddata_t
806  #define _tfindfirst __tfindfirst
807  #define _tfindnext __tfindnext
808  typedef long intptr_t;
809  #endif
810 
811 #endif
812 
813 #ifdef _DEBUG
814  // NOTE: Those attributes were used always until 1.8.0 and became a global define for 1.8.1
816  // which is only enabled in debug because it had a large (sometimes >5%) impact on speed.
817  // A better solution in the long run is to break the interface and remove _all_ attribute
818  // access in functions like CSceneManager::drawAll and instead put that information in some
819  // own struct/class or in CSceneManager.
820  // See http://irrlicht.sourceforge.net/forum/viewtopic.php?f=2&t=48211 for the discussion.
821  #define _IRR_SCENEMANAGER_DEBUG
822  #ifdef NO_IRR_SCENEMANAGER_DEBUG
823  #undef _IRR_SCENEMANAGER_DEBUG
824  #endif
825 #endif
826 
827 #endif // __IRR_COMPILE_CONFIG_H_INCLUDED__
828