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