IrrCompileConfig.h 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873
  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. #ifndef IRR_COMPILE_CONFIG_H_INCLUDED
  5. #define IRR_COMPILE_CONFIG_H_INCLUDED
  6. //! Irrlicht SDK Version
  7. #define IRRLICHT_VERSION_MAJOR 1
  8. #define IRRLICHT_VERSION_MINOR 9
  9. #define IRRLICHT_VERSION_REVISION 0
  10. // This flag will be defined only in SVN, the official release code will have
  11. // it undefined
  12. #define IRRLICHT_VERSION_SVN alpha
  13. #define IRRLICHT_SDK_VERSION "1.9.0"
  14. #include <stdio.h> // TODO: Although included elsewhere this is required at least for mingw
  15. //! The defines for different operating system are:
  16. //! _IRR_WINDOWS_ for all irrlicht supported Windows versions
  17. //! _IRR_WINDOWS_API_ for Windows or XBox
  18. //! _IRR_LINUX_PLATFORM_ for Linux (it is defined here if no other os is defined)
  19. //! _IRR_SOLARIS_PLATFORM_ for Solaris
  20. //! _IRR_OSX_PLATFORM_ for Apple systems running OSX
  21. //! _IRR_POSIX_API_ for Posix compatible systems
  22. //! Note: PLATFORM defines the OS specific layer, API can group several platforms
  23. //! DEVICE is the windowing system used, several PLATFORMs support more than one DEVICE
  24. //! Irrlicht can be compiled with more than one device
  25. //! _IRR_COMPILE_WITH_WINDOWS_DEVICE_ for Windows API based device
  26. //! _IRR_COMPILE_WITH_OSX_DEVICE_ for Cocoa native windowing on OSX
  27. //! _IRR_COMPILE_WITH_X11_DEVICE_ for Linux X11 based device
  28. //! _IRR_COMPILE_WITH_SDL_DEVICE_ for platform independent SDL framework
  29. //! _IRR_COMPILE_WITH_CONSOLE_DEVICE_ for no windowing system, used as a fallback
  30. //! _IRR_COMPILE_WITH_FB_DEVICE_ for framebuffer systems
  31. //! Passing defines to the compiler which have NO in front of the _IRR definename is an alternative
  32. //! way which can be used to disable defines (instead of outcommenting them in this header).
  33. //! So defines can be controlled from Makefiles or Projectfiles which allows building
  34. //! different library versions without having to change the sources.
  35. //! Example: NO_IRR_COMPILE_WITH_X11_ would disable X11
  36. //! Uncomment this line to compile with the SDL device
  37. //#define _IRR_COMPILE_WITH_SDL_DEVICE_
  38. #ifdef NO_IRR_COMPILE_WITH_SDL_DEVICE_
  39. #undef _IRR_COMPILE_WITH_SDL_DEVICE_
  40. #endif
  41. //! Comment this line to compile without the fallback console device.
  42. #define _IRR_COMPILE_WITH_CONSOLE_DEVICE_
  43. #ifdef NO_IRR_COMPILE_WITH_CONSOLE_DEVICE_
  44. #undef _IRR_COMPILE_WITH_CONSOLE_DEVICE_
  45. #endif
  46. //! WIN32 for Windows32
  47. //! WIN64 for Windows64
  48. // The windows platform and API support SDL and WINDOW device
  49. #if defined(_WIN32) || defined(_WIN64) || defined(WIN32) || defined(WIN64)
  50. #define _IRR_WINDOWS_
  51. #define _IRR_WINDOWS_API_
  52. #define _IRR_COMPILE_WITH_WINDOWS_DEVICE_
  53. #endif
  54. #if defined(_MSC_VER) && (_MSC_VER < 1500)
  55. # error "Only Microsoft Visual Studio 9.0 and later are supported."
  56. #endif
  57. // XBox is deprecated (as DX8 is removed). Use Irrlicht 1.8 if you still want to work on this.
  58. #if defined(_XBOX)
  59. #undef _IRR_WINDOWS_
  60. #define _IRR_XBOX_PLATFORM_ // deprecated
  61. #define _IRR_WINDOWS_API_
  62. //#define _IRR_COMPILE_WITH_WINDOWS_DEVICE_
  63. #undef _IRR_COMPILE_WITH_WINDOWS_DEVICE_
  64. //#define _IRR_COMPILE_WITH_SDL_DEVICE_
  65. #include <xtl.h>
  66. #endif
  67. #if defined(__APPLE__) || defined(MACOSX)
  68. #if !defined(MACOSX)
  69. #define MACOSX // legacy support
  70. #endif
  71. #define _IRR_OSX_PLATFORM_
  72. #define _IRR_COMPILE_WITH_OSX_DEVICE_
  73. #endif
  74. #if defined(__SVR4) && defined(__sun)
  75. #define _IRR_SOLARIS_PLATFORM_
  76. #if defined(__sparc)
  77. #define __BIG_ENDIAN__
  78. #endif
  79. #endif
  80. #if !defined(_IRR_WINDOWS_API_) && !defined(_IRR_OSX_PLATFORM_)
  81. #ifndef _IRR_SOLARIS_PLATFORM_
  82. #define _IRR_LINUX_PLATFORM_
  83. #endif
  84. #define _IRR_POSIX_API_
  85. #define _IRR_COMPILE_WITH_X11_DEVICE_
  86. #endif
  87. //! Define _IRR_COMPILE_WITH_JOYSTICK_SUPPORT_ if you want joystick events.
  88. #define _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
  89. #ifdef NO_IRR_COMPILE_WITH_JOYSTICK_EVENTS_
  90. #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
  91. #endif
  92. //! Maximum number of texture an SMaterial can have, up to 8 are supported by Irrlicht.
  93. #define _IRR_MATERIAL_MAX_TEXTURES_ 8
  94. //! Whether to support XML and XML-based formats (irrmesh, collada...)
  95. #define _IRR_COMPILE_WITH_XML_
  96. #ifdef NO_IRR_COMPILE_WITH_XML_
  97. #undef _IRR_COMPILE_WITH_XML_
  98. #endif
  99. //! Add a leak-hunter to Irrlicht which helps finding unreleased reference counted objects.
  100. //! NOTE: This is slow and should only be used for debugging
  101. //#define _IRR_COMPILE_WITH_LEAK_HUNTER_
  102. #ifdef NO_IRR_COMPILE_WITH_LEAK_HUNTER_
  103. #undef _IRR_COMPILE_WITH_LEAK_HUNTER_
  104. #endif
  105. //! Enable profiling information in the engine
  106. /** NOTE: The profiler itself always exists and can be used by applications.
  107. This define is about the engine creating profile data
  108. while it runs and enabling it will slow down the engine. */
  109. //#define _IRR_COMPILE_WITH_PROFILING_
  110. #ifdef NO_IRR_COMPILE_WITH_PROFILING_
  111. #undef _IRR_COMPILE_WITH_PROFILING_
  112. #endif
  113. //! Define _IRR_COMPILE_WITH_DIRECT3D_9_ to compile the Irrlicht engine with DIRECT3D9.
  114. /** If you only want to use the software device or opengl you can disable those defines.
  115. This switch is mostly disabled because people do not get the g++ compiler compile
  116. directX header files, and directX is only available on Windows platforms. If you
  117. are using Dev-Cpp, and want to compile this using a DX dev pack, you can define
  118. _IRR_COMPILE_WITH_DX9_DEV_PACK_. So you simply need to add something like this
  119. to the compiler settings: -DIRR_COMPILE_WITH_DX9_DEV_PACK
  120. and this to the linker settings: -ld3dx9
  121. */
  122. #if defined(_IRR_WINDOWS_API_) && (!defined(__GNUC__) || defined(IRR_COMPILE_WITH_DX9_DEV_PACK))
  123. //! Define _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_ if you want to use DirectInput for joystick handling.
  124. /** This only applies to Windows devices, currently only supported under Win32 device.
  125. If not defined, Windows Multimedia library is used, which offers also broad support for joystick devices. */
  126. #define _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
  127. #ifdef NO_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
  128. #undef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
  129. #endif
  130. // can't get this to compile currently under borland, can be removed if someone has a better solution
  131. #if defined(__BORLANDC__)
  132. #undef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
  133. #endif
  134. //! enabled Direct3D 9
  135. #define _IRR_COMPILE_WITH_DIRECT3D_9_
  136. #ifdef NO_IRR_COMPILE_WITH_DIRECT3D_9_
  137. #undef _IRR_COMPILE_WITH_DIRECT3D_9_
  138. #endif
  139. #endif
  140. //! Define _IRR_COMPILE_WITH_OPENGL_ to compile the Irrlicht engine with OpenGL.
  141. /** If you do not wish the engine to be compiled with OpenGL, comment this
  142. define out. */
  143. #define _IRR_COMPILE_WITH_OPENGL_
  144. #ifdef NO_IRR_COMPILE_WITH_OPENGL_
  145. #undef _IRR_COMPILE_WITH_OPENGL_
  146. #endif
  147. //! Define required options for OpenGL drivers.
  148. #if defined(_IRR_COMPILE_WITH_OPENGL_)
  149. #if defined(_IRR_COMPILE_WITH_WINDOWS_DEVICE_)
  150. #define _IRR_OPENGL_USE_EXTPOINTER_
  151. #define _IRR_COMPILE_WITH_WGL_MANAGER_
  152. #elif defined(_IRR_COMPILE_WITH_X11_DEVICE_)
  153. #define _IRR_OPENGL_USE_EXTPOINTER_
  154. #define _IRR_COMPILE_WITH_GLX_MANAGER_
  155. #elif defined(_IRR_COMPILE_WITH_OSX_DEVICE_)
  156. #define _IRR_COMPILE_WITH_NSOGL_MANAGER_
  157. #elif defined(_IRR_SOLARIS_PLATFORM_)
  158. #define _IRR_COMPILE_WITH_GLX_MANAGER_
  159. #elif defined(_IRR_COMPILE_WITH_SDL_DEVICE_)
  160. #define _IRR_OPENGL_USE_EXTPOINTER_
  161. #endif
  162. #endif
  163. //! Define _IRR_COMPILE_WITH_SOFTWARE_ to compile the Irrlicht engine with software driver
  164. /** If you do not need the software driver, or want to use Burning's Video instead,
  165. comment this define out */
  166. #define _IRR_COMPILE_WITH_SOFTWARE_
  167. #ifdef NO_IRR_COMPILE_WITH_SOFTWARE_
  168. #undef _IRR_COMPILE_WITH_SOFTWARE_
  169. #endif
  170. //! Define _IRR_COMPILE_WITH_BURNINGSVIDEO_ to compile the Irrlicht engine with Burning's video driver
  171. /** If you do not need this software driver, you can comment this define out. */
  172. #define _IRR_COMPILE_WITH_BURNINGSVIDEO_
  173. #ifdef NO_IRR_COMPILE_WITH_BURNINGSVIDEO_
  174. #undef _IRR_COMPILE_WITH_BURNINGSVIDEO_
  175. #endif
  176. //! Define _IRR_COMPILE_WITH_X11_ to compile the Irrlicht engine with X11 support.
  177. /** If you do not wish the engine to be compiled with X11, comment this
  178. define out. */
  179. // Only used in LinuxDevice.
  180. #define _IRR_COMPILE_WITH_X11_
  181. #ifdef NO_IRR_COMPILE_WITH_X11_
  182. #undef _IRR_COMPILE_WITH_X11_
  183. #endif
  184. //! On some Linux systems the XF86 vidmode extension, X11 RandR, or XInput2 are missing.
  185. //! Use these defines to add/remove support for those dependencies as needed.
  186. //! XInput2 (library called Xi) is currently only used to support touch-input.
  187. #if defined(_IRR_LINUX_PLATFORM_) && defined(_IRR_COMPILE_WITH_X11_)
  188. #define _IRR_LINUX_X11_VIDMODE_
  189. //#define _IRR_LINUX_X11_RANDR_
  190. //#define _IRR_LINUX_X11_XINPUT2_
  191. #ifdef NO_IRR_LINUX_X11_VIDMODE_
  192. #undef _IRR_LINUX_X11_VIDMODE_
  193. #endif
  194. #ifdef NO_IRR_LINUX_X11_RANDR_
  195. #undef _IRR_LINUX_X11_RANDR_
  196. #endif
  197. #ifdef NO_IRR_LINUX_X11_XINPUT2_
  198. #undef _IRR_LINUX_X11_XINPUT2_
  199. #endif
  200. //! X11 has by default only monochrome cursors, but using the Xcursor library we can also get color cursor support.
  201. //! If you have the need for custom color cursors on X11 then enable this and make sure you also link
  202. //! to the Xcursor library in your Makefile/Projectfile.
  203. //#define _IRR_LINUX_XCURSOR_
  204. #ifdef NO_IRR_LINUX_XCURSOR_
  205. #undef _IRR_LINUX_XCURSOR_
  206. #endif
  207. #endif
  208. //! Define _IRR_COMPILE_WITH_GUI_ to compile the engine with the built-in GUI
  209. /** Disable this if you are using an external library to draw the GUI. If you disable this then
  210. you will not be able to use anything provided by the GUI Environment, including loading fonts. */
  211. #define _IRR_COMPILE_WITH_GUI_
  212. #ifdef NO_IRR_COMPILE_WITH_GUI_
  213. #undef _IRR_COMPILE_WITH_GUI_
  214. #endif
  215. //! Define _IRR_COMPILE_WITH_PARTICLES to compile the engine the with the build-in particle system
  216. /** You can disable this if you don't need particles or use an external particle system. */
  217. #define _IRR_COMPILE_WITH_PARTICLES_
  218. #ifdef NO_IRR_COMPILE_WITH_PARTICLES_
  219. #undef _IRR_COMPILE_WITH_PARTICLES_
  220. #endif
  221. //! Define _IRR_WCHAR_FILESYSTEM to enable unicode filesystem support for the engine.
  222. /** This enables the engine to read/write from unicode filesystem. If you
  223. disable this feature, the engine behave as before (ansi). This is currently only supported
  224. for Windows based systems. You also have to set #define UNICODE for this to compile.
  225. */
  226. //#define _IRR_WCHAR_FILESYSTEM
  227. #ifdef NO_IRR_WCHAR_FILESYSTEM
  228. #undef _IRR_WCHAR_FILESYSTEM
  229. #endif
  230. //! Define _IRR_COMPILE_WITH_LIBJPEG_ to enable compiling the engine using libjpeg.
  231. /** This enables the engine to read jpeg images. If you comment this out,
  232. the engine will no longer read .jpeg images. */
  233. #define _IRR_COMPILE_WITH_LIBJPEG_
  234. #ifdef NO_IRR_COMPILE_WITH_LIBJPEG_
  235. #undef _IRR_COMPILE_WITH_LIBJPEG_
  236. #endif
  237. //! Define _IRR_USE_NON_SYSTEM_JPEG_LIB_ to let irrlicht use the jpeglib which comes with irrlicht.
  238. /** If this is commented out, Irrlicht will try to compile using the jpeg lib installed in the system.
  239. This is only used when _IRR_COMPILE_WITH_LIBJPEG_ is defined.
  240. NOTE: You will also have to modify the Makefile or project files when changing this default.
  241. */
  242. #define _IRR_USE_NON_SYSTEM_JPEG_LIB_
  243. #ifdef NO_IRR_USE_NON_SYSTEM_JPEG_LIB_
  244. #undef _IRR_USE_NON_SYSTEM_JPEG_LIB_
  245. #endif
  246. //! Define _IRR_COMPILE_WITH_LIBPNG_ to enable compiling the engine using libpng.
  247. /** This enables the engine to read png images. If you comment this out,
  248. the engine will no longer read .png images. */
  249. #define _IRR_COMPILE_WITH_LIBPNG_
  250. #ifdef NO_IRR_COMPILE_WITH_LIBPNG_
  251. #undef _IRR_COMPILE_WITH_LIBPNG_
  252. #endif
  253. //! Define _IRR_USE_NON_SYSTEM_LIBPNG_ to let irrlicht use the libpng which comes with irrlicht.
  254. /** If this is commented out, Irrlicht will try to compile using the libpng installed in the system.
  255. This is only used when _IRR_COMPILE_WITH_LIBPNG_ is defined.
  256. NOTE: You will also have to modify the Makefile or project files when changing this default.
  257. */
  258. #define _IRR_USE_NON_SYSTEM_LIB_PNG_
  259. #ifdef NO_IRR_USE_NON_SYSTEM_LIB_PNG_
  260. #undef _IRR_USE_NON_SYSTEM_LIB_PNG_
  261. #endif
  262. //! Define _IRR_D3D_NO_SHADER_DEBUGGING to disable shader debugging in D3D9
  263. /** If _IRR_D3D_NO_SHADER_DEBUGGING is undefined in IrrCompileConfig.h,
  264. it is possible to debug all D3D9 shaders in VisualStudio. All shaders
  265. (which have been generated in memory or read from archives for example) will be emitted
  266. into a temporary file at runtime for this purpose. To debug your shaders, choose
  267. Debug->Direct3D->StartWithDirect3DDebugging in Visual Studio, and for every shader a
  268. file named 'irr_dbg_shader_%%.vsh' or 'irr_dbg_shader_%%.psh' will be created. Drag'n'drop
  269. the file you want to debug into visual studio. That's it. You can now set breakpoints and
  270. watch registers, variables etc. This works with ASM, HLSL, and both with pixel and vertex shaders.
  271. Note that the engine will run in D3D REF for this, which is a lot slower than HAL. */
  272. #define _IRR_D3D_NO_SHADER_DEBUGGING
  273. #ifdef NO_IRR_D3D_NO_SHADER_DEBUGGING
  274. #undef _IRR_D3D_NO_SHADER_DEBUGGING
  275. #endif
  276. //! Define _IRR_D3D_USE_LEGACY_HLSL_COMPILER to enable the old HLSL compiler in recent DX SDKs
  277. /** This enables support for ps_1_x shaders for recent DX SDKs. Otherwise, support
  278. for this shader model is not available anymore in SDKs after Oct2006. You need to
  279. distribute the OCT2006_d3dx9_31_x86.cab or OCT2006_d3dx9_31_x64.cab though, in order
  280. to provide the user with the proper DLL. That's why it's disabled by default. */
  281. //#define _IRR_D3D_USE_LEGACY_HLSL_COMPILER
  282. #ifdef NO_IRR_D3D_USE_LEGACY_HLSL_COMPILER
  283. #undef _IRR_D3D_USE_LEGACY_HLSL_COMPILER
  284. #endif
  285. //! Define _IRR_USE_NVIDIA_PERFHUD_ to opt-in to using the nVidia PerHUD tool
  286. /** Enable, by opting-in, to use the nVidia PerfHUD performance analysis driver
  287. tool <http://developer.nvidia.com/object/nvperfhud_home.html>. */
  288. #undef _IRR_USE_NVIDIA_PERFHUD_
  289. //! Define one of the three setting for Burning's Video Software Rasterizer
  290. /** So if we were marketing guys we could say Irrlicht has 4 Software-Rasterizers.
  291. In a Nutshell:
  292. All Burnings Rasterizers use 32 Bit Backbuffer, 32Bit Texture & 32 Bit Z or WBuffer,
  293. 16 Bit/32 Bit can be adjusted on a global flag.
  294. BURNINGVIDEO_RENDERER_BEAUTIFUL
  295. 32 Bit + Vertexcolor + Lighting + Per Pixel Perspective Correct + SubPixel/SubTexel Correct +
  296. Bilinear Texturefiltering + WBuffer
  297. BURNINGVIDEO_RENDERER_FAST
  298. 32 Bit + Per Pixel Perspective Correct + SubPixel/SubTexel Correct + WBuffer +
  299. Bilinear Dithering TextureFiltering + WBuffer
  300. BURNINGVIDEO_RENDERER_ULTRA_FAST
  301. 16Bit + SubPixel/SubTexel Correct + ZBuffer
  302. */
  303. #define BURNINGVIDEO_RENDERER_BEAUTIFUL
  304. //#define BURNINGVIDEO_RENDERER_FAST
  305. //#define BURNINGVIDEO_RENDERER_ULTRA_FAST
  306. //#define BURNINGVIDEO_RENDERER_CE
  307. //! Uncomment the following line if you want to ignore the deprecated warnings
  308. //#define IGNORE_DEPRECATED_WARNING
  309. //! Define _IRR_COMPILE_WITH_SHADOW_VOLUME_SCENENODE_ to support ShadowVolumes
  310. #define _IRR_COMPILE_WITH_SHADOW_VOLUME_SCENENODE_
  311. #ifdef NO_IRR_COMPILE_WITH_SHADOW_VOLUME_SCENENODE_
  312. #undef _IRR_COMPILE_WITH_SHADOW_VOLUME_SCENENODE_
  313. #endif
  314. //! Define _IRR_COMPILE_WITH_OCTREE_SCENENODE_ to support OctreeSceneNodes
  315. #define _IRR_COMPILE_WITH_OCTREE_SCENENODE_
  316. #ifdef NO_IRR_COMPILE_WITH_OCTREE_SCENENODE_
  317. #undef _IRR_COMPILE_WITH_OCTREE_SCENENODE_
  318. #endif
  319. //! Define _IRR_COMPILE_WITH_TERRAIN_SCENENODE_ to support TerrainSceneNodes
  320. #define _IRR_COMPILE_WITH_TERRAIN_SCENENODE_
  321. #ifdef NO_IRR_COMPILE_WITH_TERRAIN_SCENENODE_
  322. #undef _IRR_COMPILE_WITH_TERRAIN_SCENENODE_
  323. #endif
  324. //! Define _IRR_COMPILE_WITH_BILLBOARD_SCENENODE_ to support BillboardSceneNodes
  325. #define _IRR_COMPILE_WITH_BILLBOARD_SCENENODE_
  326. #ifdef NO_IRR_COMPILE_WITH_BILLBOARD_SCENENODE_
  327. #undef _IRR_COMPILE_WITH_BILLBOARD_SCENENODE_
  328. #endif
  329. //! Define _IRR_COMPILE_WITH_WATER_SURFACE_SCENENODE_ to support WaterSurfaceSceneNodes
  330. #define _IRR_COMPILE_WITH_WATER_SURFACE_SCENENODE_
  331. #ifdef NO_IRR_COMPILE_WITH_WATER_SURFACE_SCENENODE_
  332. #undef _IRR_COMPILE_WITH_WATER_SURFACE_SCENENODE_
  333. #endif
  334. //! Define _IRR_COMPILE_WITH_SKYDOME_SCENENODE_ to support SkydomeSceneNodes
  335. #define _IRR_COMPILE_WITH_SKYDOME_SCENENODE_
  336. #ifdef NO_IRR_COMPILE_WITH_SKYDOME_SCENENODE_
  337. #undef _IRR_COMPILE_WITH_SKYDOME_SCENENODE_
  338. #endif
  339. //! Define _IRR_COMPILE_WITH_CUBE_SCENENODE_ to support CubeSceneNodes
  340. #define _IRR_COMPILE_WITH_CUBE_SCENENODE_
  341. #ifdef NO_IRR_COMPILE_WITH_CUBE_SCENENODE_
  342. #undef _IRR_COMPILE_WITH_CUBE_SCENENODE_
  343. #endif
  344. //! Define _IRR_COMPILE_WITH_SPHERE_SCENENODE_ to support CubeSceneNodes
  345. #define _IRR_COMPILE_WITH_SPHERE_SCENENODE_
  346. #ifdef NO_IRR_COMPILE_WITH_SPHERE_SCENENODE_
  347. #undef _IRR_COMPILE_WITH_SPHERE_SCENENODE_
  348. #endif
  349. //! Define _IRR_COMPILE_WITH_IRR_SCENE_LOADER_ if you want to be able to load
  350. /** .irr scenes using ISceneManager::loadScene */
  351. #define _IRR_COMPILE_WITH_IRR_SCENE_LOADER_
  352. #ifdef NO_IRR_COMPILE_WITH_IRR_SCENE_LOADER_
  353. #undef _IRR_COMPILE_WITH_IRR_SCENE_LOADER_
  354. #endif
  355. //! Define _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_ if you want to use bone based
  356. /** animated meshes. If you compile without this, you will be unable to load
  357. B3D, MS3D or X meshes */
  358. #define _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
  359. #ifdef NO_IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
  360. #undef _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
  361. #endif
  362. #ifdef _IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_
  363. //! Define _IRR_COMPILE_WITH_B3D_LOADER_ if you want to use Blitz3D files
  364. #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_ if you want to Milkshape files
  369. #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_ if you want to use Microsoft X files
  374. #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_ if you want to load Ogre 3D files
  379. #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. //! Define _IRR_COMPILE_WITH_IRR_MESH_LOADER_ if you want to load Irrlicht Engine .irrmesh files
  385. #define _IRR_COMPILE_WITH_IRR_MESH_LOADER_
  386. #ifdef NO_IRR_COMPILE_WITH_IRR_MESH_LOADER_
  387. #undef _IRR_COMPILE_WITH_IRR_MESH_LOADER_
  388. #endif
  389. //! Define _IRR_COMPILE_WITH_HALFLIFE_LOADER_ if you want to load Halflife animated files
  390. #define _IRR_COMPILE_WITH_HALFLIFE_LOADER_
  391. #ifdef NO_IRR_COMPILE_WITH_HALFLIFE_LOADER_
  392. #undef _IRR_COMPILE_WITH_HALFLIFE_LOADER_
  393. #endif
  394. //! Define _IRR_COMPILE_WITH_MD2_LOADER_ if you want to load Quake 2 animated files
  395. #define _IRR_COMPILE_WITH_MD2_LOADER_
  396. #ifdef NO_IRR_COMPILE_WITH_MD2_LOADER_
  397. #undef _IRR_COMPILE_WITH_MD2_LOADER_
  398. #endif
  399. //! Define _IRR_COMPILE_WITH_MD3_LOADER_ if you want to load Quake 3 animated files
  400. #define _IRR_COMPILE_WITH_MD3_LOADER_
  401. #ifdef NO_IRR_COMPILE_WITH_MD3_LOADER_
  402. #undef _IRR_COMPILE_WITH_MD3_LOADER_
  403. #endif
  404. //! Define _IRR_COMPILE_WITH_3DS_LOADER_ if you want to load 3D Studio Max files
  405. #define _IRR_COMPILE_WITH_3DS_LOADER_
  406. #ifdef NO_IRR_COMPILE_WITH_3DS_LOADER_
  407. #undef _IRR_COMPILE_WITH_3DS_LOADER_
  408. #endif
  409. //! Define _IRR_COMPILE_WITH_COLLADA_LOADER_ if you want to load Collada files
  410. #define _IRR_COMPILE_WITH_COLLADA_LOADER_
  411. #ifdef NO_IRR_COMPILE_WITH_COLLADA_LOADER_
  412. #undef _IRR_COMPILE_WITH_COLLADA_LOADER_
  413. #endif
  414. //! Define _IRR_COMPILE_WITH_CSM_LOADER_ if you want to load Cartography Shop files
  415. #define _IRR_COMPILE_WITH_CSM_LOADER_
  416. #ifdef NO_IRR_COMPILE_WITH_CSM_LOADER_
  417. #undef _IRR_COMPILE_WITH_CSM_LOADER_
  418. #endif
  419. //! Define _IRR_COMPILE_WITH_BSP_LOADER_ if you want to load Quake 3 BSP files
  420. #define _IRR_COMPILE_WITH_BSP_LOADER_
  421. #ifdef NO_IRR_COMPILE_WITH_BSP_LOADER_
  422. #undef _IRR_COMPILE_WITH_BSP_LOADER_
  423. #endif
  424. //! Define _IRR_COMPILE_WITH_DMF_LOADER_ if you want to load DeleD files
  425. #define _IRR_COMPILE_WITH_DMF_LOADER_
  426. #ifdef NO_IRR_COMPILE_WITH_DMF_LOADER_
  427. #undef _IRR_COMPILE_WITH_DMF_LOADER_
  428. #endif
  429. //! Define _IRR_COMPILE_WITH_LMTS_LOADER_ if you want to load LMTools files
  430. #define _IRR_COMPILE_WITH_LMTS_LOADER_
  431. #ifdef NO_IRR_COMPILE_WITH_LMTS_LOADER_
  432. #undef _IRR_COMPILE_WITH_LMTS_LOADER_
  433. #endif
  434. //! Define _IRR_COMPILE_WITH_MY3D_LOADER_ if you want to load MY3D files
  435. #define _IRR_COMPILE_WITH_MY3D_LOADER_
  436. #ifdef NO_IRR_COMPILE_WITH_MY3D_LOADER_
  437. #undef _IRR_COMPILE_WITH_MY3D_LOADER_
  438. #endif
  439. //! Define _IRR_COMPILE_WITH_OBJ_LOADER_ if you want to load Wavefront OBJ files
  440. #define _IRR_COMPILE_WITH_OBJ_LOADER_
  441. #ifdef NO_IRR_COMPILE_WITH_OBJ_LOADER_
  442. #undef _IRR_COMPILE_WITH_OBJ_LOADER_
  443. #endif
  444. //! Define _IRR_COMPILE_WITH_OCT_LOADER_ if you want to load FSRad OCT files
  445. #define _IRR_COMPILE_WITH_OCT_LOADER_
  446. #ifdef NO_IRR_COMPILE_WITH_OCT_LOADER_
  447. #undef _IRR_COMPILE_WITH_OCT_LOADER_
  448. #endif
  449. //! Define _IRR_COMPILE_WITH_LWO_LOADER_ if you want to load Lightwave3D files
  450. #define _IRR_COMPILE_WITH_LWO_LOADER_
  451. #ifdef NO_IRR_COMPILE_WITH_LWO_LOADER_
  452. #undef _IRR_COMPILE_WITH_LWO_LOADER_
  453. #endif
  454. //! Define _IRR_COMPILE_WITH_STL_LOADER_ if you want to load stereolithography files
  455. #define _IRR_COMPILE_WITH_STL_LOADER_
  456. #ifdef NO_IRR_COMPILE_WITH_STL_LOADER_
  457. #undef _IRR_COMPILE_WITH_STL_LOADER_
  458. #endif
  459. //! Define _IRR_COMPILE_WITH_PLY_LOADER_ if you want to load Polygon (Stanford Triangle) files
  460. #define _IRR_COMPILE_WITH_PLY_LOADER_
  461. #ifdef NO_IRR_COMPILE_WITH_PLY_LOADER_
  462. #undef _IRR_COMPILE_WITH_PLY_LOADER_
  463. #endif
  464. //! Define _IRR_COMPILE_WITH_SMF_LOADER_ if you want to load 3D World Studio mesh files
  465. #define _IRR_COMPILE_WITH_SMF_LOADER_
  466. #ifdef NO_IRR_COMPILE_WITH_SMF_LOADER_
  467. #undef _IRR_COMPILE_WITH_SMF_LOADER_
  468. #endif
  469. //! Define _IRR_COMPILE_WITH_IRR_WRITER_ if you want to write static .irrMesh files
  470. #define _IRR_COMPILE_WITH_IRR_WRITER_
  471. #ifdef NO_IRR_COMPILE_WITH_IRR_WRITER_
  472. #undef _IRR_COMPILE_WITH_IRR_WRITER_
  473. #endif
  474. //! Define _IRR_COMPILE_WITH_COLLADA_WRITER_ if you want to write Collada files
  475. #define _IRR_COMPILE_WITH_COLLADA_WRITER_
  476. #ifdef NO_IRR_COMPILE_WITH_COLLADA_WRITER_
  477. #undef _IRR_COMPILE_WITH_COLLADA_WRITER_
  478. #endif
  479. //! Define _IRR_COMPILE_WITH_STL_WRITER_ if you want to write .stl files
  480. #define _IRR_COMPILE_WITH_STL_WRITER_
  481. #ifdef NO_IRR_COMPILE_WITH_STL_WRITER_
  482. #undef _IRR_COMPILE_WITH_STL_WRITER_
  483. #endif
  484. //! Define _IRR_COMPILE_WITH_OBJ_WRITER_ if you want to write .obj files
  485. #define _IRR_COMPILE_WITH_OBJ_WRITER_
  486. #ifdef NO_IRR_COMPILE_WITH_OBJ_WRITER_
  487. #undef _IRR_COMPILE_WITH_OBJ_WRITER_
  488. #endif
  489. //! Define _IRR_COMPILE_WITH_PLY_WRITER_ if you want to write .ply files
  490. #define _IRR_COMPILE_WITH_PLY_WRITER_
  491. #ifdef NO_IRR_COMPILE_WITH_PLY_WRITER_
  492. #undef _IRR_COMPILE_WITH_PLY_WRITER_
  493. #endif
  494. //! Define _IRR_COMPILE_WITH_B3D_WRITER_ if you want to write .b3d files
  495. #define _IRR_COMPILE_WITH_B3D_WRITER_
  496. #ifdef NO_IRR_COMPILE_WITH_B3D_WRITER_
  497. #undef _IRR_COMPILE_WITH_B3D_WRITER_
  498. #endif
  499. //! Define _IRR_COMPILE_WITH_BMP_LOADER_ if you want to load .bmp files
  500. //! Disabling this loader will also disable the built-in font
  501. #define _IRR_COMPILE_WITH_BMP_LOADER_
  502. #ifdef NO_IRR_COMPILE_WITH_BMP_LOADER_
  503. #undef _IRR_COMPILE_WITH_BMP_LOADER_
  504. #endif
  505. //! Define _IRR_COMPILE_WITH_JPG_LOADER_ if you want to load .jpg files
  506. #define _IRR_COMPILE_WITH_JPG_LOADER_
  507. #ifdef NO_IRR_COMPILE_WITH_JPG_LOADER_
  508. #undef _IRR_COMPILE_WITH_JPG_LOADER_
  509. #endif
  510. //! Define _IRR_COMPILE_WITH_PCX_LOADER_ if you want to load .pcx files
  511. #define _IRR_COMPILE_WITH_PCX_LOADER_
  512. #ifdef NO_IRR_COMPILE_WITH_PCX_LOADER_
  513. #undef _IRR_COMPILE_WITH_PCX_LOADER_
  514. #endif
  515. //! Define _IRR_COMPILE_WITH_PNG_LOADER_ if you want to load .png files
  516. #define _IRR_COMPILE_WITH_PNG_LOADER_
  517. #ifdef NO_IRR_COMPILE_WITH_PNG_LOADER_
  518. #undef _IRR_COMPILE_WITH_PNG_LOADER_
  519. #endif
  520. //! Define _IRR_COMPILE_WITH_PPM_LOADER_ if you want to load .ppm/.pgm/.pbm files
  521. #define _IRR_COMPILE_WITH_PPM_LOADER_
  522. #ifdef NO_IRR_COMPILE_WITH_PPM_LOADER_
  523. #undef _IRR_COMPILE_WITH_PPM_LOADER_
  524. #endif
  525. //! Define _IRR_COMPILE_WITH_PSD_LOADER_ if you want to load .psd files
  526. #define _IRR_COMPILE_WITH_PSD_LOADER_
  527. #ifdef NO_IRR_COMPILE_WITH_PSD_LOADER_
  528. #undef _IRR_COMPILE_WITH_PSD_LOADER_
  529. #endif
  530. //! Define _IRR_COMPILE_WITH_PVR_LOADER_ if you want to load .pvr files
  531. #define _IRR_COMPILE_WITH_PVR_LOADER_
  532. #ifdef NO_IRR_COMPILE_WITH_PVR_LOADER_
  533. #undef _IRR_COMPILE_WITH_PVR_LOADER_
  534. #endif
  535. //! Define _IRR_COMPILE_WITH_DDS_LOADER_ if you want to load compressed .dds files
  536. // Patent problem isn't related to this loader.
  537. #define _IRR_COMPILE_WITH_DDS_LOADER_
  538. #ifdef NO_IRR_COMPILE_WITH_DDS_LOADER_
  539. #undef _IRR_COMPILE_WITH_DDS_LOADER_
  540. #endif
  541. //! Define _IRR_COMPILE_WITH_DDS_DECODER_LOADER_ if you want to load .dds files
  542. //! loader will decompress these files and will send to the memory as uncompressed files.
  543. // Outcommented because
  544. // a) it doesn't compile on 64-bit currently
  545. // b) anyone enabling it should be aware that S3TC compression algorithm which might be used in that loader
  546. // is patented in the US by S3 and they do collect license fees when it's used in applications.
  547. // So if you are unfortunate enough to develop applications for US market and their broken patent system be careful.
  548. // #define _IRR_COMPILE_WITH_DDS_DECODER_LOADER_
  549. #ifdef NO_IRR_COMPILE_WITH_DDS_DECODER_LOADER_
  550. #undef _IRR_COMPILE_WITH_DDS_DECODER_LOADER_
  551. #endif
  552. #ifdef _IRR_COMPILE_WITH_DDS_DECODER_LOADER_
  553. #undef _IRR_COMPILE_WITH_DDS_LOADER_
  554. #endif
  555. //! Define _IRR_COMPILE_WITH_TGA_LOADER_ if you want to load .tga files
  556. #define _IRR_COMPILE_WITH_TGA_LOADER_
  557. #ifdef NO_IRR_COMPILE_WITH_TGA_LOADER_
  558. #undef _IRR_COMPILE_WITH_TGA_LOADER_
  559. #endif
  560. //! Define _IRR_COMPILE_WITH_WAL_LOADER_ if you want to load .wal files
  561. #define _IRR_COMPILE_WITH_WAL_LOADER_
  562. #ifdef NO_IRR_COMPILE_WITH_WAL_LOADER_
  563. #undef _IRR_COMPILE_WITH_WAL_LOADER_
  564. #endif
  565. //! Define _IRR_COMPILE_WITH_LMP_LOADER_ if you want to load .lmp files
  566. #define _IRR_COMPILE_WITH_LMP_LOADER_
  567. #ifdef NO_IRR_COMPILE_WITH_LMP_LOADER_
  568. #undef _IRR_COMPILE_WITH_LMP_LOADER_
  569. #endif
  570. //! Define _IRR_COMPILE_WITH_RGB_LOADER_ if you want to load Silicon Graphics .rgb/.rgba/.sgi/.int/.inta/.bw files
  571. #define _IRR_COMPILE_WITH_RGB_LOADER_
  572. #ifdef NO_IRR_COMPILE_WITH_RGB_LOADER_
  573. #undef _IRR_COMPILE_WITH_RGB_LOADER_
  574. #endif
  575. //! Define _IRR_COMPILE_WITH_BMP_WRITER_ if you want to write .bmp files
  576. #define _IRR_COMPILE_WITH_BMP_WRITER_
  577. #ifdef NO_IRR_COMPILE_WITH_BMP_WRITER_
  578. #undef _IRR_COMPILE_WITH_BMP_WRITER_
  579. #endif
  580. //! Define _IRR_COMPILE_WITH_JPG_WRITER_ if you want to write .jpg files
  581. #define _IRR_COMPILE_WITH_JPG_WRITER_
  582. #ifdef NO_IRR_COMPILE_WITH_JPG_WRITER_
  583. #undef _IRR_COMPILE_WITH_JPG_WRITER_
  584. #endif
  585. //! Define _IRR_COMPILE_WITH_PCX_WRITER_ if you want to write .pcx files
  586. #define _IRR_COMPILE_WITH_PCX_WRITER_
  587. #ifdef NO_IRR_COMPILE_WITH_PCX_WRITER_
  588. #undef _IRR_COMPILE_WITH_PCX_WRITER_
  589. #endif
  590. //! Define _IRR_COMPILE_WITH_PNG_WRITER_ if you want to write .png files
  591. #define _IRR_COMPILE_WITH_PNG_WRITER_
  592. #ifdef NO_IRR_COMPILE_WITH_PNG_WRITER_
  593. #undef _IRR_COMPILE_WITH_PNG_WRITER_
  594. #endif
  595. //! Define _IRR_COMPILE_WITH_PPM_WRITER_ if you want to write .ppm files
  596. #define _IRR_COMPILE_WITH_PPM_WRITER_
  597. #ifdef NO_IRR_COMPILE_WITH_PPM_WRITER_
  598. #undef _IRR_COMPILE_WITH_PPM_WRITER_
  599. #endif
  600. //! Define _IRR_COMPILE_WITH_PSD_WRITER_ if you want to write .psd files
  601. #define _IRR_COMPILE_WITH_PSD_WRITER_
  602. #ifdef NO_IRR_COMPILE_WITH_PSD_WRITER_
  603. #undef _IRR_COMPILE_WITH_PSD_WRITER_
  604. #endif
  605. //! Define _IRR_COMPILE_WITH_TGA_WRITER_ if you want to write .tga files
  606. #define _IRR_COMPILE_WITH_TGA_WRITER_
  607. #ifdef NO_IRR_COMPILE_WITH_TGA_WRITER_
  608. #undef _IRR_COMPILE_WITH_TGA_WRITER_
  609. #endif
  610. //! Define __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_ if you want to open ZIP and GZIP archives
  611. /** ZIP reading has several more options below to configure. */
  612. #define __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
  613. #ifdef NO__IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
  614. #undef __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
  615. #endif
  616. #ifdef __IRR_COMPILE_WITH_ZIP_ARCHIVE_LOADER_
  617. //! Define _IRR_COMPILE_WITH_ZLIB_ to enable compiling the engine using zlib.
  618. /** This enables the engine to read from compressed .zip archives. If you
  619. disable this feature, the engine can still read archives, but only uncompressed
  620. ones. */
  621. #define _IRR_COMPILE_WITH_ZLIB_
  622. #ifdef NO_IRR_COMPILE_WITH_ZLIB_
  623. #undef _IRR_COMPILE_WITH_ZLIB_
  624. #endif
  625. //! Define _IRR_USE_NON_SYSTEM_ZLIB_ to let irrlicht use the zlib which comes with irrlicht.
  626. /** If this is commented out, Irrlicht will try to compile using the zlib
  627. installed on the system. This is only used when _IRR_COMPILE_WITH_ZLIB_ is
  628. defined.
  629. NOTE: You will also have to modify the Makefile or project files when changing this default.
  630. */
  631. #define _IRR_USE_NON_SYSTEM_ZLIB_
  632. #ifdef NO_IRR_USE_NON_SYSTEM_ZLIB_
  633. #undef _IRR_USE_NON_SYSTEM_ZLIB_
  634. #endif
  635. //! Define _IRR_COMPILE_WITH_ZIP_ENCRYPTION_ if you want to read AES-encrypted ZIP archives
  636. #define _IRR_COMPILE_WITH_ZIP_ENCRYPTION_
  637. #ifdef NO_IRR_COMPILE_WITH_ZIP_ENCRYPTION_
  638. #undef _IRR_COMPILE_WITH_ZIP_ENCRYPTION_
  639. #endif
  640. //! Define _IRR_COMPILE_WITH_BZIP2_ if you want to support bzip2 compressed zip archives
  641. /** bzip2 is superior to the original zip file compression modes, but requires
  642. a certain amount of memory for decompression and adds several files to the
  643. library. */
  644. #define _IRR_COMPILE_WITH_BZIP2_
  645. #ifdef NO_IRR_COMPILE_WITH_BZIP2_
  646. #undef _IRR_COMPILE_WITH_BZIP2_
  647. #endif
  648. //! Define _IRR_USE_NON_SYSTEM_BZLIB_ to let irrlicht use the bzlib which comes with irrlicht.
  649. /** If this is commented out, Irrlicht will try to compile using the bzlib
  650. installed on the system. This is only used when _IRR_COMPILE_WITH_BZLIB_ is
  651. defined.
  652. NOTE: You will also have to modify the Makefile or project files when changing this default.
  653. */
  654. #define _IRR_USE_NON_SYSTEM_BZLIB_
  655. #ifdef NO_IRR_USE_NON_SYSTEM_BZLIB_
  656. #undef _IRR_USE_NON_SYSTEM_BZLIB_
  657. #endif
  658. //! Define _IRR_COMPILE_WITH_LZMA_ if you want to use LZMA compressed zip files.
  659. /** LZMA is a very efficient compression code, known from 7zip. Irrlicht
  660. currently only supports zip archives, though. */
  661. #define _IRR_COMPILE_WITH_LZMA_
  662. #ifdef NO_IRR_COMPILE_WITH_LZMA_
  663. #undef _IRR_COMPILE_WITH_LZMA_
  664. #endif
  665. #endif
  666. //! Define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_ if you want to mount folders as archives
  667. #define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
  668. #ifdef NO__IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
  669. #undef __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
  670. #endif
  671. //! Define __IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_ if you want to open ID software PAK archives
  672. #define __IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_
  673. #ifdef NO__IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_
  674. #undef __IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_
  675. #endif
  676. //! Define __IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_ if you want to open Nebula Device NPK archives
  677. #define __IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_
  678. #ifdef NO__IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_
  679. #undef __IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_
  680. #endif
  681. //! Define __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_ if you want to open TAR archives
  682. #define __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_
  683. #ifdef NO__IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_
  684. #undef __IRR_COMPILE_WITH_TAR_ARCHIVE_LOADER_
  685. #endif
  686. //! Define __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_ if you want to open WAD archives
  687. #define __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
  688. #ifdef NO__IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
  689. #undef __IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_
  690. #endif
  691. //! Set FPU settings
  692. /** Irrlicht should use approximate float and integer fpu techniques
  693. precision will be lower but speed higher. currently X86 only
  694. */
  695. #if !defined(_IRR_OSX_PLATFORM_) && !defined(_IRR_SOLARIS_PLATFORM_)
  696. //#define IRRLICHT_FAST_MATH
  697. #ifdef NO_IRRLICHT_FAST_MATH
  698. #undef IRRLICHT_FAST_MATH
  699. #endif
  700. #endif
  701. // Some cleanup and standard stuff
  702. #ifdef _IRR_WINDOWS_API_
  703. // To build Irrlicht as a static library, you must define _IRR_STATIC_LIB_ in both the
  704. // Irrlicht build, *and* in the user application, before #including <irrlicht.h>
  705. #ifndef _IRR_STATIC_LIB_
  706. #ifdef IRRLICHT_EXPORTS
  707. #define IRRLICHT_API __declspec(dllexport)
  708. #else
  709. #define IRRLICHT_API __declspec(dllimport)
  710. #endif // IRRLICHT_EXPORT
  711. #else
  712. #define IRRLICHT_API
  713. #endif // _IRR_STATIC_LIB_
  714. // Declare the calling convention.
  715. #if defined(_STDCALL_SUPPORTED)
  716. #define IRRCALLCONV __stdcall
  717. #else
  718. #define IRRCALLCONV __cdecl
  719. #endif // STDCALL_SUPPORTED
  720. #else // _IRR_WINDOWS_API_
  721. // Force symbol export in shared libraries built with gcc.
  722. #if (__GNUC__ >= 4) && !defined(_IRR_STATIC_LIB_) && defined(IRRLICHT_EXPORTS)
  723. #define IRRLICHT_API __attribute__ ((visibility("default")))
  724. #else
  725. #define IRRLICHT_API
  726. #endif
  727. #define IRRCALLCONV
  728. #endif // _IRR_WINDOWS_API_
  729. #ifndef _IRR_WINDOWS_API_
  730. #undef _IRR_WCHAR_FILESYSTEM
  731. #endif
  732. #if defined(_IRR_SOLARIS_PLATFORM_)
  733. #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
  734. #endif
  735. //! 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)
  736. #define __IRR_HAS_S64
  737. #ifdef NO__IRR_HAS_S64
  738. #undef __IRR_HAS_S64
  739. #endif
  740. // These depend on XML
  741. #ifndef _IRR_COMPILE_WITH_XML_
  742. #undef _IRR_COMPILE_WITH_IRR_MESH_LOADER_
  743. #undef _IRR_COMPILE_WITH_IRR_WRITER_
  744. #undef _IRR_COMPILE_WITH_COLLADA_WRITER_
  745. #undef _IRR_COMPILE_WITH_COLLADA_LOADER_
  746. #endif
  747. #if defined(__BORLANDC__)
  748. #include <tchar.h>
  749. // Borland 5.5.1
  750. #if __BORLANDC__ == 0x551
  751. #undef _tfinddata_t
  752. #undef _tfindfirst
  753. #undef _tfindnext
  754. #define _tfinddata_t __tfinddata_t
  755. #define _tfindfirst __tfindfirst
  756. #define _tfindnext __tfindnext
  757. typedef long intptr_t;
  758. #endif
  759. #endif
  760. #ifndef __has_feature
  761. #define __has_feature(x) 0 // Compatibility with non-clang compilers.
  762. #endif
  763. #ifdef _DEBUG
  764. //! A few attributes are written in CSceneManager when _IRR_SCENEMANAGER_DEBUG is enabled
  765. // NOTE: Those attributes were used always until 1.8.0 and became a global define for 1.8.1
  766. // which is only enabled in debug because it had a large (sometimes >5%) impact on speed.
  767. // A better solution in the long run is to break the interface and remove _all_ attribute
  768. // access in functions like CSceneManager::drawAll and instead put that information in some
  769. // own struct/class or in CSceneManager.
  770. // See http://irrlicht.sourceforge.net/forum/viewtopic.php?f=2&t=48211 for the discussion.
  771. #define _IRR_SCENEMANAGER_DEBUG
  772. #ifdef NO_IRR_SCENEMANAGER_DEBUG
  773. #undef _IRR_SCENEMANAGER_DEBUG
  774. #endif
  775. #endif
  776. //! Solve Camera errors - Debug Feature
  777. /* - Allow Camera 90 degree up, Target==Position,buildCameraLookAtMatrixLH
  778. - pre v1.9 CCameraSceneNode moved the up non-particular in the positive x-Direction. not compatible
  779. - Enabled is not compatible with Irrlicht Collision and Response.
  780. */
  781. //#define _IRR_COMPILE_WITH_90_DEGREE_CAMERA
  782. #endif // IRR_COMPILE_CONFIG_H_INCLUDED