36#define OGRE_PLATFORM_WIN32 1
37#define OGRE_PLATFORM_LINUX 2
38#define OGRE_PLATFORM_APPLE 3
39#define OGRE_PLATFORM_APPLE_IOS 4
40#define OGRE_PLATFORM_ANDROID 5
41#define OGRE_PLATFORM_NACL 6
42#define OGRE_PLATFORM_WINRT 7
43#define OGRE_PLATFORM_FLASHCC 8
45#define OGRE_COMPILER_MSVC 1
46#define OGRE_COMPILER_GNUC 2
47#define OGRE_COMPILER_BORL 3
48#define OGRE_COMPILER_WINSCW 4
49#define OGRE_COMPILER_GCCE 5
50#define OGRE_COMPILER_CLANG 6
52#define OGRE_ENDIAN_LITTLE 1
53#define OGRE_ENDIAN_BIG 2
55#define OGRE_ARCHITECTURE_32 1
56#define OGRE_ARCHITECTURE_64 2
60#if (defined( __WIN32__ ) || defined( _WIN32 )) && defined(__ANDROID__)
61# define OGRE_COMPILER OGRE_COMPILER_GNUC
62# define OGRE_COMP_VER 470
63#elif defined( __GCCE__ )
64# define OGRE_COMPILER OGRE_COMPILER_GCCE
65# define OGRE_COMP_VER _MSC_VER
67#elif defined( __WINSCW__ )
68# define OGRE_COMPILER OGRE_COMPILER_WINSCW
69# define OGRE_COMP_VER _MSC_VER
70#elif defined( _MSC_VER )
71# define OGRE_COMPILER OGRE_COMPILER_MSVC
72# define OGRE_COMP_VER _MSC_VER
73#elif defined( __clang__ )
74# define OGRE_COMPILER OGRE_COMPILER_CLANG
75# define OGRE_COMP_VER (((__clang_major__)*100) + \
76 (__clang_minor__*10) + \
78#elif defined( __GNUC__ )
79# define OGRE_COMPILER OGRE_COMPILER_GNUC
80# define OGRE_COMP_VER (((__GNUC__)*100) + \
81 (__GNUC_MINOR__*10) + \
83#elif defined( __BORLANDC__ )
84# define OGRE_COMPILER OGRE_COMPILER_BORL
85# define OGRE_COMP_VER __BCPLUSPLUS__
86# define __FUNCTION__ __FUNC__
88# pragma error "No known compiler. Abort! Abort!"
93#if OGRE_COMPILER == OGRE_COMPILER_MSVC
94# if OGRE_COMP_VER >= 1200
95# define FORCEINLINE __forceinline
97#elif defined(__MINGW32__)
98# if !defined(FORCEINLINE)
99# define FORCEINLINE __inline
102# define FORCEINLINE __inline
106#if (defined( __WIN32__ ) || defined( _WIN32 )) && !defined(__ANDROID__)
107# if defined(WINAPI_FAMILY)
108# define __OGRE_HAVE_DIRECTXMATH 1
109# include <winapifamily.h>
110# if WINAPI_FAMILY == WINAPI_FAMILY_APP|| WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
111# define DESKTOP_APP 1
113# define OGRE_PLATFORM OGRE_PLATFORM_WINRT
114# ifndef _CRT_SECURE_NO_WARNINGS
115# define _CRT_SECURE_NO_WARNINGS
117# ifndef _SCL_SECURE_NO_WARNINGS
118# define _SCL_SECURE_NO_WARNINGS
120# if WINAPI_FAMILY == WINAPI_FAMILY_APP
121# define OGRE_WINRT_TARGET_TYPE DESKTOP_APP
123# if WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
124# define OGRE_WINRT_TARGET_TYPE PHONE
127# define OGRE_PLATFORM OGRE_PLATFORM_WIN32
130# define OGRE_PLATFORM OGRE_PLATFORM_WIN32
132#elif defined(__FLASHCC__)
133# define OGRE_PLATFORM OGRE_PLATFORM_FLASHCC
134#elif defined( __APPLE_CC__)
135# ifndef __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
136# define __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ 0
138# ifndef __IPHONE_OS_VERSION_MIN_REQUIRED
139# define __IPHONE_OS_VERSION_MIN_REQUIRED 0
143# if __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 60000 || __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
144# define OGRE_PLATFORM OGRE_PLATFORM_APPLE_IOS
146# define OGRE_PLATFORM OGRE_PLATFORM_APPLE
148#elif defined(__ANDROID__)
149# define OGRE_PLATFORM OGRE_PLATFORM_ANDROID
150#elif defined( __native_client__ )
151# define OGRE_PLATFORM OGRE_PLATFORM_NACL
152# ifndef OGRE_STATIC_LIB
153# error OGRE must be built as static for NaCl (OGRE_STATIC=true in CMake)
155# ifdef OGRE_BUILD_RENDERSYSTEM_D3D9
156# error D3D9 is not supported on NaCl (OGRE_BUILD_RENDERSYSTEM_D3D9 false in CMake)
158# ifdef OGRE_BUILD_RENDERSYSTEM_GL
159# error OpenGL is not supported on NaCl (OGRE_BUILD_RENDERSYSTEM_GL=false in CMake)
161# ifndef OGRE_BUILD_RENDERSYSTEM_GLES2
162# error GLES2 render system is required for NaCl (OGRE_BUILD_RENDERSYSTEM_GLES2=false in CMake)
165# define OGRE_PLATFORM OGRE_PLATFORM_LINUX
169#if defined(__x86_64__) || defined(_M_X64) || defined(__powerpc64__) || defined(__alpha__) || defined(__ia64__) || defined(__s390__) || defined(__s390x__) || defined(__arm64__) || defined(__aarch64__) || defined(__mips64) || defined(__mips64_)
170# define OGRE_ARCH_TYPE OGRE_ARCHITECTURE_64
172# define OGRE_ARCH_TYPE OGRE_ARCHITECTURE_32
178#define OGRE_QUOTE_INPLACE(x) # x
179#define OGRE_QUOTE(x) OGRE_QUOTE_INPLACE(x)
180#define OGRE_WARN( x ) message( __FILE__ "(" QUOTE( __LINE__ ) ") : " x "\n" )
183#if OGRE_COMPILER == OGRE_COMPILER_MSVC
184# define OGRE_DEPRECATED __declspec(deprecated)
185#elif OGRE_COMPILER == OGRE_COMPILER_GNUC || OGRE_COMPILER == OGRE_COMPILER_CLANG
186# define OGRE_DEPRECATED __attribute__ ((deprecated))
188# pragma message("WARNING: You need to implement OGRE_DEPRECATED for this compiler")
189# define OGRE_DEPRECATED
194#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 || OGRE_PLATFORM == OGRE_PLATFORM_WINRT
198# if defined( OGRE_STATIC_LIB )
203# if defined( OGRE_NONCLIENT_BUILD )
204# define _OgreExport __declspec( dllexport )
206# if defined( __MINGW32__ )
209# define _OgreExport __declspec( dllimport )
216# if defined(_DEBUG) || defined(DEBUG)
217# define OGRE_DEBUG_MODE 1
219# define OGRE_DEBUG_MODE 0
226#if defined(__MINGW32__)
227# if OGRE_COMP_VER < 400
228# if !defined(_STLPORT_VERSION)
230# if defined(__MINGW32_TOOLBOX_UNICODE__) || OGRE_COMP_VER > 345
231# define OGRE_UNICODE_SUPPORT 1
233# define OGRE_UNICODE_SUPPORT 0
236# define OGRE_UNICODE_SUPPORT 1
239# define OGRE_UNICODE_SUPPORT 1
242# define OGRE_UNICODE_SUPPORT 1
249#if OGRE_PLATFORM == OGRE_PLATFORM_LINUX || OGRE_PLATFORM == OGRE_PLATFORM_APPLE || OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS || \
250 OGRE_PLATFORM == OGRE_PLATFORM_ANDROID || OGRE_PLATFORM == OGRE_PLATFORM_NACL || OGRE_PLATFORM == OGRE_PLATFORM_FLASHCC
253# if defined( OGRE_GCC_VISIBILITY )
254# define _OgreExport __attribute__ ((visibility("default")))
255# define _OgrePrivate __attribute__ ((visibility("hidden")))
262# define stricmp strcasecmp
265# define OGRE_DEBUG_MODE 1
267# define OGRE_DEBUG_MODE 0
272#define OGRE_UNICODE_SUPPORT 1
278#if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
279# ifdef OGRE_UNICODE_SUPPORT
280# undef OGRE_UNICODE_SUPPORT
282# define OGRE_UNICODE_SUPPORT 1
284# define stricmp strcasecmp
286# define OGRE_DEBUG_MODE 1
288# define OGRE_DEBUG_MODE 0
290# ifndef CLOCKS_PER_SEC
291# define CLOCKS_PER_SEC 1000
297#if OGRE_PLATFORM == OGRE_PLATFORM_FLASHCC
298# ifdef OGRE_UNICODE_SUPPORT
299# undef OGRE_UNICODE_SUPPORT
301# define OGRE_UNICODE_SUPPORT 0
303# define OGRE_DEBUG_MODE 1
305# define OGRE_DEBUG_MODE 0
309#ifndef __OGRE_HAVE_DIRECTXMATH
310# define __OGRE_HAVE_DIRECTXMATH 0
316#ifdef OGRE_CONFIG_BIG_ENDIAN
317# define OGRE_ENDIAN OGRE_ENDIAN_BIG
319# define OGRE_ENDIAN OGRE_ENDIAN_LITTLE
324#if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID
326# define OGRE_DEFAULT_LOCALE ""
327#elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS
328# define OGRE_DEFAULT_LOCALE "C"
330# if OGRE_COMPILER == OGRE_COMPILER_MSVC
332# define OGRE_DEFAULT_LOCALE "en-GB"
335# define OGRE_DEFAULT_LOCALE "uk"
337# elif OGRE_COMPILER == OGRE_COMPILER_GCCE
339# define OGRE_DEFAULT_LOCALE "en_GB.UTF8"
341# if OGRE_NO_LIBCPP_SUPPORT == 0
342# define OGRE_DEFAULT_LOCALE "en_GB.UTF-8"
344# define OGRE_DEFAULT_LOCALE "C"
353# define OGRE_BUILD_SUFFIX "_d"
355# define OGRE_BUILD_SUFFIX ""
366#if OGRE_COMPILER == OGRE_COMPILER_MSVC
375#if OGRE_COMPILER == OGRE_COMPILER_MSVC
376#ifndef _CRT_SECURE_NO_WARNINGS
377# define _CRT_SECURE_NO_WARNINGS
379#ifndef _SCL_SECURE_NO_WARNINGS
380# define _SCL_SECURE_NO_WARNINGS
384# pragma warning (disable : 4786)
387# pragma warning (disable : 4503)
390# pragma warning (disable : 4251)
394# pragma warning (disable : 4275)
398# pragma warning( disable : 4290 )
402# pragma warning( disable: 4661)
408# pragma warning( disable: 4996)
411# pragma warning (disable : 201)
414# pragma warning (disable : 4100)
417# pragma warning (disable : 4345)
Reference-counted shared pointer, used for objects where implicit destruction is required.
unsigned long long uint64