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 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 
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 
248 #define _IRR_COMPILE_WITH_LIBJPEG_
249 #ifdef NO_IRR_COMPILE_WITH_LIBJPEG_
250 #undef _IRR_COMPILE_WITH_LIBJPEG_
251 #endif
252 
254 
256 #undef _IRR_USE_NON_SYSTEM_JPEG_LIB_
257 
259 
261 #define _IRR_COMPILE_WITH_LIBPNG_
262 #ifdef NO_IRR_COMPILE_WITH_LIBPNG_
263 #undef _IRR_COMPILE_WITH_LIBPNG_
264 #endif
265 
267 
269 #undef _IRR_USE_NON_SYSTEM_LIB_PNG_
270 
272 
281 #define _IRR_D3D_NO_SHADER_DEBUGGING
282 #ifdef NO_IRR_D3D_NO_SHADER_DEBUGGING
283 #undef _IRR_D3D_NO_SHADER_DEBUGGING
284 #endif
285 
287 
291 //#define _IRR_D3D_USE_LEGACY_HLSL_COMPILER
292 #ifdef NO_IRR_D3D_USE_LEGACY_HLSL_COMPILER
293 #undef _IRR_D3D_USE_LEGACY_HLSL_COMPILER
294 #endif
295 
297 //#define _IRR_COMPILE_WITH_CG_
298 #ifdef NO_IRR_COMPILE_WITH_CG_
299 #undef _IRR_COMPILE_WITH_CG_
300 #endif
301 #if !defined(_IRR_COMPILE_WITH_OPENGL_) && !defined(_IRR_COMPILE_WITH_DIRECT3D_9_)
302 #undef _IRR_COMPILE_WITH_CG_
303 #endif
304 
306 
308 #undef _IRR_USE_NVIDIA_PERFHUD_
309 
311 
328 #define BURNINGVIDEO_RENDERER_BEAUTIFUL
329 //#define BURNINGVIDEO_RENDERER_FAST
330 //#define BURNINGVIDEO_RENDERER_ULTRA_FAST
331 //#define BURNINGVIDEO_RENDERER_CE
332 
334 //#define IGNORE_DEPRECATED_WARNING
335 
337 
338 #define _IRR_COMPILE_WITH_IRR_SCENE_LOADER_
339 #ifdef NO_IRR_COMPILE_WITH_IRR_SCENE_LOADER_
340 #undef _IRR_COMPILE_WITH_IRR_SCENE_LOADER_
341 #endif
342 
344 
346 #define _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
347 #ifdef NO_IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
348 #undef _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
349 #endif
350 
351 #ifdef _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
353 #define _IRR_COMPILE_WITH_B3D_LOADER_
354 #ifdef NO_IRR_COMPILE_WITH_B3D_LOADER_
355 #undef _IRR_COMPILE_WITH_B3D_LOADER_
356 #endif
358 #define _IRR_COMPILE_WITH_MS3D_LOADER_
359 #ifdef NO_IRR_COMPILE_WITH_MS3D_LOADER_
360 #undef _IRR_COMPILE_WITH_MS3D_LOADER_
361 #endif
363 #define _IRR_COMPILE_WITH_X_LOADER_
364 #ifdef NO_IRR_COMPILE_WITH_X_LOADER_
365 #undef _IRR_COMPILE_WITH_X_LOADER_
366 #endif
368 #define _IRR_COMPILE_WITH_OGRE_LOADER_
369 #ifdef NO_IRR_COMPILE_WITH_OGRE_LOADER_
370 #undef _IRR_COMPILE_WITH_OGRE_LOADER_
371 #endif
372 #endif // _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
373 
375 #define _IRR_COMPILE_WITH_IRR_MESH_LOADER_
376 #ifdef NO_IRR_COMPILE_WITH_IRR_MESH_LOADER_
377 #undef _IRR_COMPILE_WITH_IRR_MESH_LOADER_
378 #endif
380 #define _IRR_COMPILE_WITH_HALFLIFE_LOADER_
381 #ifdef NO_IRR_COMPILE_WITH_HALFLIFE_LOADER_
382 #undef _IRR_COMPILE_WITH_HALFLIFE_LOADER_
383 #endif
385 #define _IRR_COMPILE_WITH_MD2_LOADER_
386 #ifdef NO_IRR_COMPILE_WITH_MD2_LOADER_
387 #undef _IRR_COMPILE_WITH_MD2_LOADER_
388 #endif
390 #define _IRR_COMPILE_WITH_MD3_LOADER_
391 #ifdef NO_IRR_COMPILE_WITH_MD3_LOADER_
392 #undef _IRR_COMPILE_WITH_MD3_LOADER_
393 #endif
395 #define _IRR_COMPILE_WITH_3DS_LOADER_
396 #ifdef NO_IRR_COMPILE_WITH_3DS_LOADER_
397 #undef _IRR_COMPILE_WITH_3DS_LOADER_
398 #endif
400 #define _IRR_COMPILE_WITH_COLLADA_LOADER_
401 #ifdef NO_IRR_COMPILE_WITH_COLLADA_LOADER_
402 #undef _IRR_COMPILE_WITH_COLLADA_LOADER_
403 #endif
405 #define _IRR_COMPILE_WITH_CSM_LOADER_
406 #ifdef NO_IRR_COMPILE_WITH_CSM_LOADER_
407 #undef _IRR_COMPILE_WITH_CSM_LOADER_
408 #endif
410 #define _IRR_COMPILE_WITH_BSP_LOADER_
411 #ifdef NO_IRR_COMPILE_WITH_BSP_LOADER_
412 #undef _IRR_COMPILE_WITH_BSP_LOADER_
413 #endif
415 #define _IRR_COMPILE_WITH_DMF_LOADER_
416 #ifdef NO_IRR_COMPILE_WITH_DMF_LOADER_
417 #undef _IRR_COMPILE_WITH_DMF_LOADER_
418 #endif
420 #define _IRR_COMPILE_WITH_LMTS_LOADER_
421 #ifdef NO_IRR_COMPILE_WITH_LMTS_LOADER_
422 #undef _IRR_COMPILE_WITH_LMTS_LOADER_
423 #endif
425 #define _IRR_COMPILE_WITH_MY3D_LOADER_
426 #ifdef NO_IRR_COMPILE_WITH_MY3D_LOADER_
427 #undef _IRR_COMPILE_WITH_MY3D_LOADER_
428 #endif
430 #define _IRR_COMPILE_WITH_OBJ_LOADER_
431 #ifdef NO_IRR_COMPILE_WITH_OBJ_LOADER_
432 #undef _IRR_COMPILE_WITH_OBJ_LOADER_
433 #endif
435 #define _IRR_COMPILE_WITH_OCT_LOADER_
436 #ifdef NO_IRR_COMPILE_WITH_OCT_LOADER_
437 #undef _IRR_COMPILE_WITH_OCT_LOADER_
438 #endif
440 #define _IRR_COMPILE_WITH_LWO_LOADER_
441 #ifdef NO_IRR_COMPILE_WITH_LWO_LOADER_
442 #undef _IRR_COMPILE_WITH_LWO_LOADER_
443 #endif
445 #define _IRR_COMPILE_WITH_STL_LOADER_
446 #ifdef NO_IRR_COMPILE_WITH_STL_LOADER_
447 #undef _IRR_COMPILE_WITH_STL_LOADER_
448 #endif
450 #define _IRR_COMPILE_WITH_PLY_LOADER_
451 #ifdef NO_IRR_COMPILE_WITH_PLY_LOADER_
452 #undef _IRR_COMPILE_WITH_PLY_LOADER_
453 #endif
455 #define _IRR_COMPILE_WITH_SMF_LOADER_
456 #ifdef NO_IRR_COMPILE_WITH_SMF_LOADER_
457 #undef _IRR_COMPILE_WITH_SMF_LOADER_
458 #endif
459 
461 #define _IRR_COMPILE_WITH_IRR_WRITER_
462 #ifdef NO_IRR_COMPILE_WITH_IRR_WRITER_
463 #undef _IRR_COMPILE_WITH_IRR_WRITER_
464 #endif
466 #define _IRR_COMPILE_WITH_COLLADA_WRITER_
467 #ifdef NO_IRR_COMPILE_WITH_COLLADA_WRITER_
468 #undef _IRR_COMPILE_WITH_COLLADA_WRITER_
469 #endif
471 #define _IRR_COMPILE_WITH_STL_WRITER_
472 #ifdef NO_IRR_COMPILE_WITH_STL_WRITER_
473 #undef _IRR_COMPILE_WITH_STL_WRITER_
474 #endif
476 #define _IRR_COMPILE_WITH_OBJ_WRITER_
477 #ifdef NO_IRR_COMPILE_WITH_OBJ_WRITER_
478 #undef _IRR_COMPILE_WITH_OBJ_WRITER_
479 #endif
481 #define _IRR_COMPILE_WITH_PLY_WRITER_
482 #ifdef NO_IRR_COMPILE_WITH_PLY_WRITER_
483 #undef _IRR_COMPILE_WITH_PLY_WRITER_
484 #endif
485 
488 #define _IRR_COMPILE_WITH_BMP_LOADER_
489 #ifdef NO_IRR_COMPILE_WITH_BMP_LOADER_
490 #undef _IRR_COMPILE_WITH_BMP_LOADER_
491 #endif
493 #define _IRR_COMPILE_WITH_JPG_LOADER_
494 #ifdef NO_IRR_COMPILE_WITH_JPG_LOADER_
495 #undef _IRR_COMPILE_WITH_JPG_LOADER_
496 #endif
498 #define _IRR_COMPILE_WITH_PCX_LOADER_
499 #ifdef NO_IRR_COMPILE_WITH_PCX_LOADER_
500 #undef _IRR_COMPILE_WITH_PCX_LOADER_
501 #endif
503 #define _IRR_COMPILE_WITH_PNG_LOADER_
504 #ifdef NO_IRR_COMPILE_WITH_PNG_LOADER_
505 #undef _IRR_COMPILE_WITH_PNG_LOADER_
506 #endif
508 #define _IRR_COMPILE_WITH_PPM_LOADER_
509 #ifdef NO_IRR_COMPILE_WITH_PPM_LOADER_
510 #undef _IRR_COMPILE_WITH_PPM_LOADER_
511 #endif
513 #define _IRR_COMPILE_WITH_PSD_LOADER_
514 #ifdef NO_IRR_COMPILE_WITH_PSD_LOADER_
515 #undef _IRR_COMPILE_WITH_PSD_LOADER_
516 #endif
518 // Outcommented because
519 // a) it doesn't compile on 64-bit currently
520 // b) anyone enabling it should be aware that S3TC compression algorithm which might be used in that loader
521 // is patented in the US by S3 and they do collect license fees when it's used in applications.
522 // So if you are unfortunate enough to develop applications for US market and their broken patent system be careful.
523 // #define _IRR_COMPILE_WITH_DDS_LOADER_
524 #ifdef NO_IRR_COMPILE_WITH_DDS_LOADER_
525 #undef _IRR_COMPILE_WITH_DDS_LOADER_
526 #endif
528 #define _IRR_COMPILE_WITH_TGA_LOADER_
529 #ifdef NO_IRR_COMPILE_WITH_TGA_LOADER_
530 #undef _IRR_COMPILE_WITH_TGA_LOADER_
531 #endif
533 #define _IRR_COMPILE_WITH_WAL_LOADER_
534 #ifdef NO_IRR_COMPILE_WITH_WAL_LOADER_
535 #undef _IRR_COMPILE_WITH_WAL_LOADER_
536 #endif
538 #define _IRR_COMPILE_WITH_LMP_LOADER_
539 #ifdef NO_IRR_COMPILE_WITH_LMP_LOADER_
540 #undef _IRR_COMPILE_WITH_LMP_LOADER_
541 #endif
543 #define _IRR_COMPILE_WITH_RGB_LOADER_
544 #ifdef NO_IRR_COMPILE_WITH_RGB_LOADER_
545 #undef _IRR_COMPILE_WITH_RGB_LOADER_
546 #endif
547 
549 #define _IRR_COMPILE_WITH_BMP_WRITER_
550 #ifdef NO_IRR_COMPILE_WITH_BMP_WRITER_
551 #undef _IRR_COMPILE_WITH_BMP_WRITER_
552 #endif
554 #define _IRR_COMPILE_WITH_JPG_WRITER_
555 #ifdef NO_IRR_COMPILE_WITH_JPG_WRITER_
556 #undef _IRR_COMPILE_WITH_JPG_WRITER_
557 #endif
559 #define _IRR_COMPILE_WITH_PCX_WRITER_
560 #ifdef NO_IRR_COMPILE_WITH_PCX_WRITER_
561 #undef _IRR_COMPILE_WITH_PCX_WRITER_
562 #endif
564 #define _IRR_COMPILE_WITH_PNG_WRITER_
565 #ifdef NO_IRR_COMPILE_WITH_PNG_WRITER_
566 #undef _IRR_COMPILE_WITH_PNG_WRITER_
567 #endif
569 #define _IRR_COMPILE_WITH_PPM_WRITER_
570 #ifdef NO_IRR_COMPILE_WITH_PPM_WRITER_
571 #undef _IRR_COMPILE_WITH_PPM_WRITER_
572 #endif
574 #define _IRR_COMPILE_WITH_PSD_WRITER_
575 #ifdef NO_IRR_COMPILE_WITH_PSD_WRITER_
576 #undef _IRR_COMPILE_WITH_PSD_WRITER_
577 #endif
579 #define _IRR_COMPILE_WITH_TGA_WRITER_
580 #ifdef NO_IRR_COMPILE_WITH_TGA_WRITER_
581 #undef _IRR_COMPILE_WITH_TGA_WRITER_
582 #endif
583 
585 
586 #define __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
587 #ifdef NO__IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
588 #undef __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
589 #endif
590 #ifdef __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
592 
595 #define _IRR_COMPILE_WITH_ZLIB_
596 #ifdef NO_IRR_COMPILE_WITH_ZLIB_
597 #undef _IRR_COMPILE_WITH_ZLIB_
598 #endif
600 
603 #undef _IRR_USE_NON_SYSTEM_ZLIB_
605 #define _IRR_COMPILE_WITH_ZIP_ENCRYPTION_
606 #ifdef NO_IRR_COMPILE_WITH_ZIP_ENCRYPTION_
607 #undef _IRR_COMPILE_WITH_ZIP_ENCRYPTION_
608 #endif
610 
613 #define _IRR_COMPILE_WITH_BZIP2_
614 #ifdef NO_IRR_COMPILE_WITH_BZIP2_
615 #undef _IRR_COMPILE_WITH_BZIP2_
616 #endif
618 
621 #undef _IRR_USE_NON_SYSTEM_BZLIB_
623 
625 #undef _IRR_COMPILE_WITH_LZMA_
626 #endif
627 
629 #define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
630 #ifdef NO__IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
631 #undef __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
632 #endif
634 #define __IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_
635 #ifdef NO__IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_
636 #undef __IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_
637 #endif
639 #define __IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_
640 #ifdef NO__IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_
641 #undef __IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_
642 #endif
644 #define __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_
645 #ifdef NO__IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_
646 #undef __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_
647 #endif
649 #define __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
650 #ifdef NO__IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
651 #undef __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
652 #endif
653 
655 
658 #if !defined(_IRR_OSX_PLATFORM_) && !defined(_IRR_SOLARIS_PLATFORM_)
659  //#define IRRLICHT_FAST_MATH
660  #ifdef NO_IRRLICHT_FAST_MATH
661  #undef IRRLICHT_FAST_MATH
662  #endif
663 #endif
664 
665 // Some cleanup and standard stuff
666 
667 #ifdef _IRR_WINDOWS_API_
668 
669 // To build Irrlicht as a static library, you must define _IRR_STATIC_LIB_ in both the
670 // Irrlicht build, *and* in the user application, before #including <irrlicht.h>
671 #ifndef _IRR_STATIC_LIB_
672 #ifdef IRRLICHT_EXPORTS
673 #define IRRLICHT_API __declspec(dllexport)
674 #else
675 #define IRRLICHT_API __declspec(dllimport)
676 #endif // IRRLICHT_EXPORT
677 #else
678 #define IRRLICHT_API
679 #endif // _IRR_STATIC_LIB_
680 
681 // Declare the calling convention.
682 #if defined(_STDCALL_SUPPORTED)
683 #define IRRCALLCONV __stdcall
684 #else
685 #define IRRCALLCONV __cdecl
686 #endif // STDCALL_SUPPORTED
687 
688 #else // _IRR_WINDOWS_API_
689 
690 // Force symbol export in shared libraries built with gcc.
691 #if (__GNUC__ >= 4) && !defined(_IRR_STATIC_LIB_) && defined(IRRLICHT_EXPORTS)
692 #define IRRLICHT_API __attribute__ ((visibility("default")))
693 #else
694 #define IRRLICHT_API
695 #endif
696 
697 #define IRRCALLCONV
698 
699 #endif // _IRR_WINDOWS_API_
700 
701 // We need to disable DIRECT3D9 support for Visual Studio 6.0 because
702 // those $%&$!! disabled support for it since Dec. 2004 and users are complaining
703 // about linker errors. Comment this out only if you are knowing what you are
704 // doing. (Which means you have an old DX9 SDK and VisualStudio6).
705 #ifdef _MSC_VER
706 #if (_MSC_VER < 1300 && !defined(__GNUC__))
707 #undef _IRR_COMPILE_WITH_DIRECT3D_9_
708 #pragma message("Compiling Irrlicht with Visual Studio 6.0, support for DX9 is disabled.")
709 #endif
710 #endif
711 
712 // XBox does not have OpenGL or DirectX9
713 #if defined(_IRR_XBOX_PLATFORM_)
714  #undef _IRR_COMPILE_WITH_OPENGL_
715  #undef _IRR_COMPILE_WITH_DIRECT3D_9_
716 #endif
717 
719 #if defined(_WIN32_WCE)
720  #undef _IRR_COMPILE_WITH_OPENGL_
721  #undef _IRR_COMPILE_WITH_DIRECT3D_8_
722  #undef _IRR_COMPILE_WITH_DIRECT3D_9_
723 
724  #undef BURNINGVIDEO_RENDERER_BEAUTIFUL
725  #undef BURNINGVIDEO_RENDERER_FAST
726  #undef BURNINGVIDEO_RENDERER_ULTRA_FAST
727  #define BURNINGVIDEO_RENDERER_CE
728 
729  #undef _IRR_COMPILE_WITH_WINDOWS_DEVICE_
730  #define _IRR_COMPILE_WITH_WINDOWS_CE_DEVICE_
731  //#define _IRR_WCHAR_FILESYSTEM
732 
733  #undef _IRR_COMPILE_WITH_IRR_MESH_LOADER_
734  //#undef _IRR_COMPILE_WITH_MD2_LOADER_
735  #undef _IRR_COMPILE_WITH_MD3_LOADER_
736  #undef _IRR_COMPILE_WITH_3DS_LOADER_
737  #undef _IRR_COMPILE_WITH_COLLADA_LOADER_
738  #undef _IRR_COMPILE_WITH_CSM_LOADER_
739  #undef _IRR_COMPILE_WITH_BSP_LOADER_
740  #undef _IRR_COMPILE_WITH_DMF_LOADER_
741  #undef _IRR_COMPILE_WITH_LMTS_LOADER_
742  #undef _IRR_COMPILE_WITH_MY3D_LOADER_
743  #undef _IRR_COMPILE_WITH_OBJ_LOADER_
744  #undef _IRR_COMPILE_WITH_OCT_LOADER_
745  #undef _IRR_COMPILE_WITH_OGRE_LOADER_
746  #undef _IRR_COMPILE_WITH_LWO_LOADER_
747  #undef _IRR_COMPILE_WITH_STL_LOADER_
748  #undef _IRR_COMPILE_WITH_IRR_WRITER_
749  #undef _IRR_COMPILE_WITH_COLLADA_WRITER_
750  #undef _IRR_COMPILE_WITH_STL_WRITER_
751  #undef _IRR_COMPILE_WITH_OBJ_WRITER_
752  //#undef _IRR_COMPILE_WITH_BMP_LOADER_
753  //#undef _IRR_COMPILE_WITH_JPG_LOADER_
754  #undef _IRR_COMPILE_WITH_PCX_LOADER_
755  //#undef _IRR_COMPILE_WITH_PNG_LOADER_
756  #undef _IRR_COMPILE_WITH_PPM_LOADER_
757  #undef _IRR_COMPILE_WITH_PSD_LOADER_
758  //#undef _IRR_COMPILE_WITH_TGA_LOADER_
759  #undef _IRR_COMPILE_WITH_WAL_LOADER_
760  #undef _IRR_COMPILE_WITH_BMP_WRITER_
761  #undef _IRR_COMPILE_WITH_JPG_WRITER_
762  #undef _IRR_COMPILE_WITH_PCX_WRITER_
763  #undef _IRR_COMPILE_WITH_PNG_WRITER_
764  #undef _IRR_COMPILE_WITH_PPM_WRITER_
765  #undef _IRR_COMPILE_WITH_PSD_WRITER_
766  #undef _IRR_COMPILE_WITH_TGA_WRITER_
767 
768 #endif
769 
770 #ifndef _IRR_WINDOWS_API_
771  #undef _IRR_WCHAR_FILESYSTEM
772 #endif
773 
774 #if defined(_IRR_SOLARIS_PLATFORM_) || defined(__FreeBSD_kernel__) || defined(__gnu_hurd__)
775  #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
776 #endif
777 
779 #define __IRR_HAS_S64
780 #ifdef NO__IRR_HAS_S64
781 #undef __IRR_HAS_S64
782 #endif
783 
784 #if defined(__BORLANDC__)
785  #include <tchar.h>
786 
787  // Borland 5.5.1 does not have _strcmpi defined
788  #if __BORLANDC__ == 0x551
789  // #define _strcmpi strcmpi
790  #undef _tfinddata_t
791  #undef _tfindfirst
792  #undef _tfindnext
793 
794  #define _tfinddata_t __tfinddata_t
795  #define _tfindfirst __tfindfirst
796  #define _tfindnext __tfindnext
797  typedef long intptr_t;
798  #endif
799 
800 #endif
801 
802 #ifdef _DEBUG
804  // NOTE: Those attributes were used always until 1.8.0 and became a global define for 1.8.1
805  // which is only enabled in debug because it had a large (sometimes >5%) impact on speed.
806  // A better solution in the long run is to break the interface and remove _all_ attribute
807  // access in functions like CSceneManager::drawAll and instead put that information in some
808  // own struct/class or in CSceneManager.
809  // See http://irrlicht.sourceforge.net/forum/viewtopic.php?f=2&t=48211 for the discussion.
810  #define _IRR_SCENEMANAGER_DEBUG
811  #ifdef NO_IRR_SCENEMANAGER_DEBUG
812  #undef _IRR_SCENEMANAGER_DEBUG
813  #endif
814 #endif
815 
816 #endif // __IRR_COMPILE_CONFIG_H_INCLUDED__
817