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 0
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.0"
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_HAIKU_PLATFORM_ for Haiku
26 //! _IRR_SOLARIS_PLATFORM_ for Solaris
27 //! _IRR_OSX_PLATFORM_ for Apple systems running OSX
28 //! _IRR_IOS_PLATFORM_ for Apple devices running iOS
29 //! _IRR_ANDROID_PLATFORM_ for devices running Android
30 //! _IRR_POSIX_API_ for Posix compatible systems
31 //! Note: PLATFORM defines the OS specific layer, API can group several platforms
32 
33 //! DEVICE is the windowing system used, several PLATFORMs support more than one DEVICE
34 //! Irrlicht can be compiled with more than one device
35 //! _IRR_COMPILE_WITH_WINDOWS_DEVICE_ for Windows API based device
36 //! _IRR_COMPILE_WITH_OSX_DEVICE_ for Cocoa native windowing on OSX
37 //! _IRR_COMPILE_WITH_X11_DEVICE_ for Linux X11 based device
38 //! _IRR_COMPILE_WITH_SDL_DEVICE_ for platform independent SDL framework
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 // Always use SDL2 in STK unless server only compilation
50 #if defined(NO_IRR_COMPILE_WITH_SDL_DEVICE_)
51 #undef _IRR_COMPILE_WITH_SDL_DEVICE_
52 #else
53 #define _IRR_COMPILE_WITH_SDL_DEVICE_
54 #endif
55 
56 //! WIN32 for Windows32
57 //! WIN64 for Windows64
58 // The windows platform and API support SDL and WINDOW device
59 #if defined(_WIN32) || defined(_WIN64) || defined(WIN32) || defined(WIN64)
60 #define _IRR_WINDOWS_
61 #define _IRR_WINDOWS_API_
62 #endif
63 
64 
65 #if defined(_MSC_VER) && (_MSC_VER < 1300)
66 #  error "Only Microsoft Visual Studio 7.0 and later are supported."
67 #endif
68 
69 // XBox only suppots the native Window stuff
70 #if defined(_XBOX)
71     #undef _IRR_WINDOWS_
72     #define _IRR_XBOX_PLATFORM_
73     #define _IRR_WINDOWS_API_
74     #include <xtl.h>
75 #endif
76 
77 #if defined(__APPLE__) || defined(MACOSX)
78 #if !defined(MACOSX)
79 #define MACOSX // legacy support
80 #endif
81 #define _IRR_OSX_PLATFORM_ // we only support OSX on these systems
82 
83 #if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) || defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
84 #define _IRR_IOS_PLATFORM_
85 #undef _IRR_COMPILE_WITH_IOS_DEVICE_
86 #define _IRR_COMPILE_WITH_SDL_DEVICE_
87 #define _IRR_COMPILE_WITH_OGLES2_
88 #else
89 #endif
90 #endif
91 
92 #if defined(HAIKU)
93 #define _IRR_HAIKU_PLATFORM_
94 #endif
95 
96 #if defined(_IRR_HAIKU_PLATFORM_)
97 #define _IRR_COMPILE_WITH_SDL_DEVICE_
98 #define _IRR_COMPILE_WITH_OPENGL_
99 #endif
100 
101 #if defined(ANDROID)
102 #define _IRR_ANDROID_PLATFORM_
103 #define _IRR_POSIX_API_
104 #endif
105 
106 #if defined(_IRR_ANDROID_PLATFORM_)
107 #define _IRR_COMPILE_WITH_SDL_DEVICE_
108 #define _IRR_COMPILE_WITH_OGLES2_
109 #endif
110 
111 #if !defined(_IRR_WINDOWS_API_) && !defined(_IRR_OSX_PLATFORM_) && !defined(_IRR_ANDROID_PLATFORM_) && !defined(_IRR_HAIKU_PLATFORM_)
112 #ifndef _IRR_SOLARIS_PLATFORM_
113 #define _IRR_LINUX_PLATFORM_
114 #endif
115 #define _IRR_POSIX_API_
116 #endif
117 
118 #ifdef NO_IRR_COMPILE_WITH_WAYLAND_DEVICE_
119 #undef _IRR_COMPILE_WITH_WAYLAND_DEVICE_
120 #endif
121 
122 
123 #if defined(_IRR_COMPILE_WITH_OGLES2_) && !defined(_IRR_COMPILE_WITH_IOS_DEVICE_) && !defined(_IRR_COMPILE_WITH_SDL_DEVICE_)
124 #define _IRR_COMPILE_WITH_EGL_
125 #endif
126 
127 //! Define _IRR_COMPILE_WITH_JOYSTICK_SUPPORT_ if you want joystick events.
128 #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
129 
130 //! Maximum number of texture an SMaterial can have, up to 8 are supported by Irrlicht.
131 #define _IRR_MATERIAL_MAX_TEXTURES_ 8
132 
133 //! Define _IRR_COMPILE_WITH_DIRECT3D_8_ and _IRR_COMPILE_WITH_DIRECT3D_9_ to
134 //! compile the Irrlicht engine with Direct3D8 and/or DIRECT3D9.
135 /** If you only want to use the software device or opengl you can disable those defines.
136 This switch is mostly disabled because people do not get the g++ compiler compile
137 directX header files, and directX is only available on Windows platforms. If you
138 are using Dev-Cpp, and want to compile this using a DX dev pack, you can define
139 _IRR_COMPILE_WITH_DX9_DEV_PACK_. So you simply need to add something like this
140 to the compiler settings: -DIRR_COMPILE_WITH_DX9_DEV_PACK
141 and this to the linker settings: -ld3dx9 -ld3dx8
142 
143 Microsoft have chosen to remove D3D8 headers from their recent DXSDKs, and
144 so D3D8 support is now disabled by default.  If you really want to build
145 with D3D8 support, then you will have to source a DXSDK with the appropriate
146 headers, e.g. Summer 2004.  This is a Microsoft issue, not an Irrlicht one.
147 */
148 #if defined(_IRR_WINDOWS_API_)
149 
150 //! Define _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_ if you want to use DirectInput for joystick handling.
151 /** This only applies to Windows devices, currently only supported under Win32 device.
152 If not defined, Windows Multimedia library is used, which offers also broad support for joystick devices. */
153 #define _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
154 #ifdef NO_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
155 #undef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
156 #endif
157 
158 //! Only define _IRR_COMPILE_WITH_DIRECT3D_8_ if you have an appropriate DXSDK, e.g. Summer 2004
159 // #define _IRR_COMPILE_WITH_DIRECT3D_8_
160 #undef _IRR_COMPILE_WITH_DIRECT3D_9_
161 
162 #endif
163 
164 //! Define _IRR_COMPILE_WITH_OPENGL_ to compile the Irrlicht engine with OpenGL.
165 /** If you do not wish the engine to be compiled with OpenGL, comment this
166 define out. */
167 #if !defined(_IRR_IOS_PLATFORM_) && !defined(_IRR_ANDROID_PLATFORM_)
168 #define _IRR_COMPILE_WITH_OPENGL_
169 #endif
170 #ifdef NO_IRR_COMPILE_WITH_OPENGL_
171 #undef _IRR_COMPILE_WITH_OPENGL_
172 #endif
173 
174 //! Define _IRR_COMPILE_WITH_OGLES2_ to compile the Irrlicht engine with OpenGL-ES 2.x.
175 /** If you do not wish the engine to be compiled with OpenGL-ES 2.x, comment
176  this define out.
177  You should only use this define if you really need the OpenGL-ES driver, and
178  it should be usually the only HW accelerated one. OpenGL is currently disabled
179  if using this driver, to avoid problems with the ogl-es emulators.
180  */
181 // #define _IRR_COMPILE_WITH_OGLES2_
182 #ifdef NO_IRR_COMPILE_WITH_OGLES2_
183 #undef _IRR_COMPILE_WITH_OGLES2_
184 #endif
185 #ifndef IRR_OGLES2_SHADER_PATH
186 #ifdef _IRR_COMPILE_WITH_IOS_DEVICE_
187 #define IRR_OGLES2_SHADER_PATH ""
188 #elif defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_)
189 #define IRR_OGLES2_SHADER_PATH "media/Shaders/"
190 #else
191 #define IRR_OGLES2_SHADER_PATH "data/shaders/irrlicht/"
192 #endif
193 #endif
194 
195 //! Define _IRR_COMPILE_WITH_X11_ to compile the Irrlicht engine with X11 support.
196 /** If you do not wish the engine to be compiled with X11, comment this
197 define out. */
198 // Only used in LinuxDevice.
199 #define _IRR_COMPILE_WITH_X11_
200 #ifdef NO_IRR_COMPILE_WITH_X11_
201 #undef _IRR_COMPILE_WITH_X11_
202 #endif
203 
204 //! Define _IRR_OPENGL_USE_EXTPOINTER_ if the OpenGL renderer should use OpenGL extensions via function pointers.
205 /** On some systems there is no support for the dynamic extension of OpenGL
206     via function pointers such that this has to be undef'ed. */
207 #ifdef _IRR_COMPILE_WITH_OPENGL_
208 #if !defined(_IRR_OSX_PLATFORM_) && !defined(_IRR_SOLARIS_PLATFORM_)
209 #define _IRR_OPENGL_USE_EXTPOINTER_
210 #endif
211 #endif
212 
213 //! Define _IRR_OGLES2_USE_EXTPOINTER_ if the OpenGL-ES 2.x driver should use extensions via function pointers.
214 /** This should usually be enabled, but also depends on the specific
215  architecture. You can simply uncomment the define and recompile.
216  */
217 #ifdef _IRR_COMPILE_WITH_OGLES2_
218 #if !defined(_IRR_IOS_PLATFORM_)
219 #define _IRR_OGLES2_USE_EXTPOINTER_
220 #endif
221 #endif
222 
223 //! On some Linux systems the XF86 vidmode extension or X11 RandR are missing. Use these flags
224 //! to remove the dependencies such that Irrlicht will compile on those systems, too.
225 //! If you don't need colored cursors you can also disable the Xcursor extension
226 #if defined(_IRR_LINUX_PLATFORM_) && defined(_IRR_COMPILE_WITH_X11_)
227 //#define _IRR_LINUX_X11_VIDMODE_
228 #define _IRR_LINUX_X11_RANDR_
229 #ifdef NO_IRR_LINUX_X11_VIDMODE_
230 #undef _IRR_LINUX_X11_VIDMODE_
231 #endif
232 #ifdef NO_IRR_LINUX_X11_RANDR_
233 #undef _IRR_LINUX_X11_RANDR_
234 #endif
235 
236 //! X11 has by default only monochrome cursors, but using the Xcursor library we can also get color cursor support.
237 //! If you have the need for custom color cursors on X11 then enable this and make sure you also link
238 //! to the Xcursor library in your Makefile/Projectfile.
239 //#define _IRR_LINUX_XCURSOR_
240 #ifdef NO_IRR_LINUX_XCURSOR_
241 #undef _IRR_LINUX_XCURSOR_
242 #endif
243 #else
244 
245 #undef _IRR_LINUX_X11_VIDMODE_
246 #undef _IRR_LINUX_X11_RANDR_
247 
248 #endif
249 
250 //! Define _IRR_COMPILE_WITH_GUI_ to compile the engine with the built-in GUI
251 /** Disable this if you are using an external library to draw the GUI. If you disable this then
252 you will not be able to use anything provided by the GUI Environment, including loading fonts. */
253 #define _IRR_COMPILE_WITH_GUI_
254 #ifdef NO_IRR_COMPILE_WITH_GUI_
255 #undef _IRR_COMPILE_WITH_GUI_
256 #endif
257 
258 //! Define _IRR_WCHAR_FILESYSTEM to enable unicode filesystem support for the engine.
259 /** This enables the engine to read/write from unicode filesystem. If you
260 disable this feature, the engine behave as before (ansi). This is currently only supported
261 for Windows based systems. You also have to set #define UNICODE for this to compile.
262 */
263 //#define _IRR_WCHAR_FILESYSTEM
264 #ifdef NO_IRR_WCHAR_FILESYSTEM
265 #undef _IRR_WCHAR_FILESYSTEM
266 #endif
267 
268 //! Define _IRR_COMPILE_WITH_JPEGLIB_ to enable compiling the engine using libjpeg.
269 /** This enables the engine to read jpeg images. If you comment this out,
270 the engine will no longer read .jpeg images. */
271 #define _IRR_COMPILE_WITH_LIBJPEG_
272 #ifdef NO_IRR_COMPILE_WITH_LIBJPEG_
273 #undef _IRR_COMPILE_WITH_LIBJPEG_
274 #endif
275 
276 //! Define _IRR_USE_NON_SYSTEM_JPEG_LIB_ to let irrlicht use the jpeglib which comes with irrlicht.
277 /** If this is commented out, Irrlicht will try to compile using the jpeg lib installed in the system.
278     This is only used when _IRR_COMPILE_WITH_LIBJPEG_ is defined. */
279 //#define _IRR_USE_NON_SYSTEM_JPEG_LIB_
280 #ifdef NO_IRR_USE_NON_SYSTEM_JPEG_LIB_
281 #undef _IRR_USE_NON_SYSTEM_JPEG_LIB_
282 #endif
283 
284 //! Define _IRR_COMPILE_WITH_LIBPNG_ to enable compiling the engine using libpng.
285 /** This enables the engine to read png images. If you comment this out,
286 the engine will no longer read .png images. */
287 #define _IRR_COMPILE_WITH_LIBPNG_
288 #ifdef NO_IRR_COMPILE_WITH_LIBPNG_
289 #undef _IRR_COMPILE_WITH_LIBPNG_
290 #endif
291 
292 //! Define _IRR_USE_NON_SYSTEM_LIBPNG_ to let irrlicht use the libpng which comes with irrlicht.
293 /** If this is commented out, Irrlicht will try to compile using the libpng installed in the system.
294     This is only used when _IRR_COMPILE_WITH_LIBPNG_ is defined. */
295 //#define _IRR_USE_NON_SYSTEM_LIB_PNG_
296 #ifdef NO_IRR_USE_NON_SYSTEM_LIB_PNG_
297 #undef _IRR_USE_NON_SYSTEM_LIB_PNG_
298 #endif
299 
300 //! Define _IRR_USE_NVIDIA_PERFHUD_ to opt-in to using the nVidia PerHUD tool
301 /** Enable, by opting-in, to use the nVidia PerfHUD performance analysis driver
302 tool <http://developer.nvidia.com/object/nvperfhud_home.html>. */
303 #undef _IRR_USE_NVIDIA_PERFHUD_
304 
305 //! Uncomment the following line if you want to ignore the deprecated warnings
306 #define IGNORE_DEPRECATED_WARNING
307 
308 //! Define _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_ if you want to use bone based
309 /** animated meshes. If you compile without this, you will be unable to load
310 B3D, MS3D or X meshes */
311 #define _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
312 #ifdef NO_IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
313 #undef _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
314 #endif
315 
316 #ifdef _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
317 //! Define _IRR_COMPILE_WITH_B3D_LOADER_ if you want to use Blitz3D files
318 #define _IRR_COMPILE_WITH_B3D_LOADER_
319 #ifdef NO_IRR_COMPILE_WITH_B3D_LOADER_
320 #undef _IRR_COMPILE_WITH_B3D_LOADER_
321 #endif
322 #endif    // _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
323 
324 //! Define _IRR_COMPILE_WITH_BMP_LOADER_ if you want to load .bmp files
325 //! Disabling this loader will also disable the built-in font
326 #define _IRR_COMPILE_WITH_BMP_LOADER_
327 #ifdef NO_IRR_COMPILE_WITH_BMP_LOADER_
328 #undef _IRR_COMPILE_WITH_BMP_LOADER_
329 #endif
330 //! Define _IRR_COMPILE_WITH_JPG_LOADER_ if you want to load .jpg files
331 #define _IRR_COMPILE_WITH_JPG_LOADER_
332 #ifdef NO_IRR_COMPILE_WITH_JPG_LOADER_
333 #undef _IRR_COMPILE_WITH_JPG_LOADER_
334 #endif
335 //! Define _IRR_COMPILE_WITH_PNG_LOADER_ if you want to load .png files
336 #define _IRR_COMPILE_WITH_PNG_LOADER_
337 #ifdef NO_IRR_COMPILE_WITH_PNG_LOADER_
338 #undef _IRR_COMPILE_WITH_PNG_LOADER_
339 #endif
340 
341 //! Define _IRR_COMPILE_WITH_BMP_WRITER_ if you want to write .bmp files
342 #define _IRR_COMPILE_WITH_BMP_WRITER_
343 #ifdef NO_IRR_COMPILE_WITH_BMP_WRITER_
344 #undef _IRR_COMPILE_WITH_BMP_WRITER_
345 #endif
346 //! Define _IRR_COMPILE_WITH_JPG_WRITER_ if you want to write .jpg files
347 #define _IRR_COMPILE_WITH_JPG_WRITER_
348 #ifdef NO_IRR_COMPILE_WITH_JPG_WRITER_
349 #undef _IRR_COMPILE_WITH_JPG_WRITER_
350 #endif
351 //! Define _IRR_COMPILE_WITH_PNG_WRITER_ if you want to write .png files
352 #define _IRR_COMPILE_WITH_PNG_WRITER_
353 #ifdef NO_IRR_COMPILE_WITH_PNG_WRITER_
354 #undef _IRR_COMPILE_WITH_PNG_WRITER_
355 #endif
356 
357 //! Define __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_ if you want to open ZIP and GZIP archives
358 /** ZIP reading has several more options below to configure. */
359 #define __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
360 #ifdef NO__IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
361 #undef __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
362 #endif
363 #ifdef __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
364 //! Define _IRR_COMPILE_WITH_ZLIB_ to enable compiling the engine using zlib.
365 /** This enables the engine to read from compressed .zip archives. If you
366 disable this feature, the engine can still read archives, but only uncompressed
367 ones. */
368 #define _IRR_COMPILE_WITH_ZLIB_
369 #ifdef NO_IRR_COMPILE_WITH_ZLIB_
370 #undef _IRR_COMPILE_WITH_ZLIB_
371 #endif
372 //! Define _IRR_USE_NON_SYSTEM_ZLIB_ to let irrlicht use the zlib which comes with irrlicht.
373 /** If this is commented out, Irrlicht will try to compile using the zlib
374 installed on the system. This is only used when _IRR_COMPILE_WITH_ZLIB_ is
375 defined. */
376 //#define _IRR_USE_NON_SYSTEM_ZLIB_
377 #ifdef NO_IRR_USE_NON_SYSTEM_ZLIB_
378 #undef _IRR_USE_NON_SYSTEM_ZLIB_
379 #endif
380 #endif
381 
382 //! Define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_ if you want to mount folders as archives
383 #define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
384 #ifdef NO__IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
385 #undef __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
386 #endif
387 //! Define __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_ if you want to open TAR archives
388 #define __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_
389 #ifdef NO__IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_
390 #undef __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_
391 #endif
392 //! Define __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_ if you want to open WAD archives
393 #define __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
394 #ifdef NO__IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
395 #undef __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
396 #endif
397 
398 //! Set FPU settings
399 /** Irrlicht should use approximate float and integer fpu techniques
400 precision will be lower but speed higher. currently X86 only
401 */
402 #if !defined(_IRR_OSX_PLATFORM_) && !defined(_IRR_SOLARIS_PLATFORM_)
403     //#define IRRLICHT_FAST_MATH
404     #ifdef NO_IRRLICHT_FAST_MATH
405     #undef IRRLICHT_FAST_MATH
406     #endif
407 #endif
408 
409 // Some cleanup and standard stuff
410 
411 #ifdef _IRR_WINDOWS_API_
412 
413 // To build Irrlicht as a static library, you must define _IRR_STATIC_LIB_ in both the
414 // Irrlicht build, *and* in the user application, before #including <irrlicht.h>
415 #ifndef _IRR_STATIC_LIB_
416 #ifdef IRRLICHT_EXPORTS
417 #define IRRLICHT_API __declspec(dllexport)
418 #else
419 #define IRRLICHT_API __declspec(dllimport)
420 #endif // IRRLICHT_EXPORT
421 #else
422 #define IRRLICHT_API
423 #endif // _IRR_STATIC_LIB_
424 
425 // Declare the calling convention.
426 #if defined(_STDCALL_SUPPORTED)
427 #define IRRCALLCONV __stdcall
428 #else
429 #define IRRCALLCONV __cdecl
430 #endif // STDCALL_SUPPORTED
431 
432 #else // _IRR_WINDOWS_API_
433 
434 // Force symbol export in shared libraries built with gcc.
435 #if (__GNUC__ >= 4) && !defined(_IRR_STATIC_LIB_) && defined(IRRLICHT_EXPORTS)
436 #define IRRLICHT_API __attribute__ ((visibility("default")))
437 #else
438 #define IRRLICHT_API
439 #endif
440 
441 #define IRRCALLCONV
442 
443 #endif // _IRR_WINDOWS_API_
444 
445 // We need to disable DIRECT3D9 support for Visual Studio 6.0 because
446 // those $%&$!! disabled support for it since Dec. 2004 and users are complaining
447 // about linker errors. Comment this out only if you are knowing what you are
448 // doing. (Which means you have an old DX9 SDK and VisualStudio6).
449 #ifdef _MSC_VER
450 #if (_MSC_VER < 1300 && !defined(__GNUC__))
451 #undef _IRR_COMPILE_WITH_DIRECT3D_9_
452 #pragma message("Compiling Irrlicht with Visual Studio 6.0, support for DX9 is disabled.")
453 #endif
454 #endif
455 
456 #ifndef _IRR_WINDOWS_API_
457     #undef _IRR_WCHAR_FILESYSTEM
458 #endif
459 
460 #if defined(__sparc__) || defined(__sun__)
461 #define __BIG_ENDIAN__
462 #endif
463 
464 #if defined(_IRR_SOLARIS_PLATFORM_)
465     #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
466 #endif
467 
468 //! 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)
469 #define __IRR_HAS_S64
470 #ifdef NO__IRR_HAS_S64
471 #undef __IRR_HAS_S64
472 #endif
473 
474 #endif // __IRR_COMPILE_CONFIG_H_INCLUDED__
475 
476