]> git.lizzy.rs Git - irrlicht.git/blobdiff - include/irrTypes.h
Add setRelativeMode for SDL driver (#123)
[irrlicht.git] / include / irrTypes.h
index aa99b50e302f61645e140550bd54304f40bcdc1f..e67b3958abe5da29ddecee4188ed30de10ba1495 100644 (file)
@@ -6,29 +6,16 @@
 #define __IRR_TYPES_H_INCLUDED__\r
 \r
 #include "IrrCompileConfig.h"\r
-\r
-#if defined(__GNUC__)\r
-       #include <limits.h>     // for __WORDSIZE\r
-#endif\r
+#include <stdint.h>\r
 \r
 namespace irr\r
 {\r
 \r
 //! 8 bit unsigned variable.\r
-/** This is a typedef for unsigned char, it ensures portability of the engine. */\r
-#if defined(_MSC_VER) || ((__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__))\r
-typedef unsigned __int8                u8;\r
-#else\r
-typedef unsigned char          u8;\r
-#endif\r
+typedef uint8_t                        u8;\r
 \r
 //! 8 bit signed variable.\r
-/** This is a typedef for signed char, it ensures portability of the engine. */\r
-#if defined(_MSC_VER) || ((__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__))\r
-typedef __int8                 s8;\r
-#else\r
-typedef signed char            s8;\r
-#endif\r
+typedef int8_t                 s8;\r
 \r
 //! 8 bit character variable.\r
 /** This is a typedef for char, it ensures portability of the engine. */\r
@@ -37,68 +24,26 @@ typedef char                        c8;
 \r
 \r
 //! 16 bit unsigned variable.\r
-/** This is a typedef for unsigned short, it ensures portability of the engine. */\r
-#if defined(_MSC_VER) || ((__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__))\r
-typedef unsigned __int16       u16;\r
-#else\r
-typedef unsigned short         u16;\r
-#endif\r
+typedef uint16_t               u16;\r
 \r
 //! 16 bit signed variable.\r
-/** This is a typedef for signed short, it ensures portability of the engine. */\r
-#if defined(_MSC_VER) || ((__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__))\r
-typedef __int16                        s16;\r
-#else\r
-typedef signed short           s16;\r
-#endif\r
+typedef int16_t                        s16;\r
 \r
 \r
 \r
 //! 32 bit unsigned variable.\r
-/** This is a typedef for unsigned int, it ensures portability of the engine. */\r
-#if defined(_MSC_VER) || ((__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__))\r
-typedef unsigned __int32       u32;\r
-#else\r
-typedef unsigned int           u32;\r
-#endif\r
+typedef uint32_t               u32;\r
 \r
 //! 32 bit signed variable.\r
-/** This is a typedef for signed int, it ensures portability of the engine. */\r
-#if defined(_MSC_VER) || ((__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__))\r
-typedef __int32                        s32;\r
-#else\r
-typedef signed int             s32;\r
-#endif\r
+typedef int32_t                        s32;\r
 \r
 \r
 #ifdef __IRR_HAS_S64\r
 //! 64 bit unsigned variable.\r
-/** This is a typedef for 64bit uint, it ensures portability of the engine. */\r
-#if defined(_MSC_VER) || ((__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__))\r
-typedef unsigned __int64                       u64;\r
-#elif defined(__GNUC__)\r
-#if defined(__WORDSIZE) && __WORDSIZE == 64\r
-typedef unsigned long int                      u64;\r
-#else\r
-__extension__ typedef unsigned long long       u64;\r
-#endif\r
-#else\r
-typedef unsigned long long                     u64;\r
-#endif\r
+typedef uint64_t               u64;\r
 \r
 //! 64 bit signed variable.\r
-/** This is a typedef for 64bit int, it ensures portability of the engine. */\r
-#if defined(_MSC_VER) || ((__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__))\r
-typedef __int64                                        s64;\r
-#elif defined(__GNUC__)\r
-#if defined(__WORDSIZE) && __WORDSIZE == 64\r
-typedef long int                               s64;\r
-#else\r
-__extension__ typedef long long                        s64;\r
-#endif\r
-#else\r
-typedef long long                              s64;\r
-#endif\r
+typedef int64_t                        s64;\r
 #endif // __IRR_HAS_S64\r
 \r
 \r
@@ -116,69 +61,34 @@ typedef double                             f64;
 \r
 \r
 #include <wchar.h>\r
-#ifdef _IRR_WINDOWS_API_\r
 //! Defines for s{w,n}printf_irr because s{w,n}printf methods do not match the ISO C\r
 //! standard on Windows platforms.\r
 //! We want int snprintf_irr(char *str, size_t size, const char *format, ...);\r
 //! and int swprintf_irr(wchar_t *wcs, size_t maxlen, const wchar_t *format, ...);\r
-#if defined(_MSC_VER) && _MSC_VER > 1310 && !defined (_WIN32_WCE)\r
+#if defined(_MSC_VER)\r
 #define swprintf_irr swprintf_s\r
 #define snprintf_irr sprintf_s\r
-#elif !defined(__CYGWIN__)\r
-#define swprintf_irr _snwprintf\r
-#define snprintf_irr _snprintf\r
-#endif\r
-\r
-// define the wchar_t type if not already built in.\r
-#ifdef _MSC_VER\r
-#ifndef _WCHAR_T_DEFINED\r
-//! A 16 bit wide character type.\r
-/**\r
-       Defines the wchar_t-type.\r
-       In VS6, its not possible to tell\r
-       the standard compiler to treat wchar_t as a built-in type, and\r
-       sometimes we just don't want to include the huge stdlib.h or wchar.h,\r
-       so we'll use this.\r
-*/\r
-typedef unsigned short wchar_t;\r
-#define _WCHAR_T_DEFINED\r
-#endif // wchar is not defined\r
-#endif // microsoft compiler\r
 #else\r
 #define swprintf_irr swprintf\r
 #define snprintf_irr snprintf\r
-#endif // _IRR_WINDOWS_API_\r
+#endif // _MSC_VER\r
 \r
 namespace irr\r
 {\r
 \r
 //! Type name for character type used by the file system.\r
-/** Should the wide character version of the FileSystem be used it is a\r
-16 bit character variable. Used for Unicode Filesystem and Unicode strings.\r
-Else it is a 8 bit character variable. Used for ansi Filesystem and non-unicode\r
-strings\r
-*/\r
-#if defined(_IRR_WCHAR_FILESYSTEM)\r
-       typedef wchar_t fschar_t;\r
-       #define _IRR_TEXT(X) L##X\r
-#else\r
        typedef char fschar_t;\r
        #define _IRR_TEXT(X) X\r
-#endif\r
 \r
 } // end namespace irr\r
 \r
 //! define a break macro for debugging.\r
 #if defined(_DEBUG)\r
-#if defined(_IRR_WINDOWS_API_) && defined(_MSC_VER) && !defined (_WIN32_WCE)\r
-#if defined(WIN64) || defined(_WIN64) // using portable common solution for x64 configuration\r
+#if defined(_IRR_WINDOWS_API_) && defined(_MSC_VER)\r
        #include <crtdbg.h>\r
        #define _IRR_DEBUG_BREAK_IF( _CONDITION_ ) if (_CONDITION_) {_CrtDbgBreak();}\r
 #else\r
-       #define _IRR_DEBUG_BREAK_IF( _CONDITION_ ) if (_CONDITION_) {_asm int 3}\r
-#endif\r
-#else\r
-       #include "assert.h"\r
+       #include <assert.h>\r
        #define _IRR_DEBUG_BREAK_IF( _CONDITION_ ) assert( !(_CONDITION_) );\r
 #endif\r
 #else\r
@@ -194,48 +104,17 @@ For functions:            template<class T> _IRR_DEPRECATED_ void test4(void) {}
 **/\r
 #if defined(IGNORE_DEPRECATED_WARNING)\r
 #define _IRR_DEPRECATED_\r
-#elif _MSC_VER >= 1310 //vs 2003 or higher\r
+#elif defined(_MSC_VER)\r
 #define _IRR_DEPRECATED_ __declspec(deprecated)\r
-#elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) // all versions above 3.0 should support this feature\r
+#elif defined(__GNUC__)\r
 #define _IRR_DEPRECATED_  __attribute__ ((deprecated))\r
 #else\r
 #define _IRR_DEPRECATED_\r
 #endif\r
 \r
-//! Defines an override macro, to protect virtual functions from typos and other mismatches\r
-/** Usage in a derived class:\r
-virtual void somefunc() _IRR_OVERRIDE_;\r
-*/\r
-#if ( ((__GNUC__ > 4 ) || ((__GNUC__ == 4 ) && (__GNUC_MINOR__ >= 7))) && (defined(__GXX_EXPERIMENTAL_CXX0X) || __cplusplus >= 201103L) )\r
-#define _IRR_OVERRIDE_ override\r
-#elif (_MSC_VER >= 1600 ) /* supported since MSVC 2010 */\r
+//! deprecated macro for virtual function override\r
+/** prefer to use the override keyword for new code */\r
 #define _IRR_OVERRIDE_ override\r
-#elif (__clang_major__ >= 3 && __has_feature(cxx_override_control))\r
-#define _IRR_OVERRIDE_ override\r
-#else\r
-#define _IRR_OVERRIDE_\r
-#endif\r
-\r
-// memory debugging\r
-#if defined(_DEBUG) && defined(IRRLICHT_EXPORTS) && defined(_MSC_VER) && \\r
-       (_MSC_VER > 1299) && !defined(_IRR_DONT_DO_MEMORY_DEBUGGING_HERE) && !defined(_WIN32_WCE)\r
-\r
-       #define CRTDBG_MAP_ALLOC\r
-       #define _CRTDBG_MAP_ALLOC\r
-       #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)\r
-       #include <stdlib.h>\r
-       #include <crtdbg.h>\r
-       #define new DEBUG_CLIENTBLOCK\r
-#endif\r
-\r
-//! ignore VC8 warning deprecated\r
-/** The Microsoft compiler */\r
-#if defined(_IRR_WINDOWS_API_) && defined(_MSC_VER) && (_MSC_VER >= 1400)\r
-       //#pragma warning( disable: 4996)\r
-       //#define _CRT_SECURE_NO_DEPRECATE 1\r
-       //#define _CRT_NONSTDC_NO_DEPRECATE 1\r
-#endif\r
-\r
 \r
 //! creates four CC codes used in Irrlicht for simple ids\r
 /** some compilers can create those by directly writing the\r