diff options
author | Pasi Keränen <pasi.keranen@qt.io> | 2019-05-28 10:16:55 +0300 |
---|---|---|
committer | Pasi Keränen <pasi.keranen@qt.io> | 2019-05-28 15:24:33 +0300 |
commit | 07af75cf100a21da07ba12ad0c714cdfc37091aa (patch) | |
tree | 8edd3ce0bfcdb430e86580c6305df4792a38684a | |
parent | 41f9c0dde9f68e0c3fde7d491c0ebfafef7b7cfc (diff) |
Define custom number types with standard Qt types
Define custom types with Qt types as first step towards reducing custom
number type usage in OpenGL Runtime.
Task-number: QT3DS-3338
Change-Id: I9a23e2ffac712177a8b6d1e489e96e3fe11a8196
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
-rw-r--r-- | src/Runtime/Source/foundation/Qt3DSSimpleTypes.h | 24 | ||||
-rw-r--r-- | src/Runtime/Source/system/Qt3DSTypes.h | 135 |
2 files changed, 26 insertions, 133 deletions
diff --git a/src/Runtime/Source/foundation/Qt3DSSimpleTypes.h b/src/Runtime/Source/foundation/Qt3DSSimpleTypes.h index d73be064..92f17245 100644 --- a/src/Runtime/Source/foundation/Qt3DSSimpleTypes.h +++ b/src/Runtime/Source/foundation/Qt3DSSimpleTypes.h @@ -38,6 +38,7 @@ // Platform specific types: // Design note: Its OK to use int for general loop variables and temps. +#include <QtCore/qglobal.h> #include "foundation/Qt3DS.h" #include "foundation/Qt3DSPreprocessor.h" #include "EABase/eabase.h" @@ -45,14 +46,21 @@ namespace qt3ds { #endif //#ifndef QT3DS_DOXYGEN -typedef uint8_t QT3DSU8; -typedef int8_t QT3DSI8; -typedef uint16_t QT3DSU16; -typedef int16_t QT3DSI16; -typedef uint32_t QT3DSU32; -typedef int32_t QT3DSI32; -typedef uint64_t QT3DSU64; -typedef int64_t QT3DSI64; +typedef quint8 QT3DSU8; +typedef qint8 QT3DSI8; +typedef quint16 QT3DSU16; +typedef qint16 QT3DSI16; +typedef quint32 QT3DSU32; +typedef qint32 QT3DSI32; + +// Android's definition of GLuint64 as unsigned long (64-bits) requires this workaround +#if Q_PROCESSOR_WORDSIZE == 8 && defined(Q_OS_ANDROID) +typedef unsigned long QT3DSU64; +#else +typedef quint64 QT3DSU64; +#endif + +typedef qint64 QT3DSI64; typedef float QT3DSF32; typedef double QT3DSF64; typedef QT3DSI32 IntBool; diff --git a/src/Runtime/Source/system/Qt3DSTypes.h b/src/Runtime/Source/system/Qt3DSTypes.h index 6330919c..65d57da8 100644 --- a/src/Runtime/Source/system/Qt3DSTypes.h +++ b/src/Runtime/Source/system/Qt3DSTypes.h @@ -30,6 +30,8 @@ #pragma once +#include <QtCore/qglobal.h> + //============================================================================== // Namespace //============================================================================== @@ -39,14 +41,16 @@ namespace Q3DStudio { // Typedefs //============================================================================== typedef bool BOOL; ///< true or false, usually 8 bits -typedef signed char INT8; ///< A signed 8-bit integer, not a character -typedef unsigned char UINT8; ///< An unsigned 8-bit integer 0-255, not a character -typedef signed short INT16; ///< A signed 16-bit integer -typedef unsigned short UINT16; ///< An unsigned 16-bit integer -typedef int INT32; ///< A signed 32-bit integer -typedef unsigned int UINT32; ///< An unsigned 32-bit integer +typedef qint8 INT8; ///< A signed 8-bit integer, not a character +typedef quint8 UINT8; ///< An unsigned 8-bit integer 0-255, not a character +typedef qint16 INT16; ///< A signed 16-bit integer +typedef quint16 UINT16; ///< An unsigned 16-bit integer +typedef qint32 INT32; ///< A signed 32-bit integer +typedef quint32 UINT32; ///< An unsigned 32-bit integer typedef float FLOAT; ///< A 32-bit floating point number typedef char CHAR; ///< String character, not a number +typedef qint64 INT64; +typedef quint64 UINT64; #ifndef TRUE #define TRUE 1 @@ -67,123 +71,11 @@ INT32 Q3DStudio_maxbits(const INT32 inBitCount, const BOOL inUnsigned); #define AKMAX_INT32 0x7FFFFFFFL #define AKMAX_UINT32 0xFFFFFFFFUL -//============================================================================== -// Platform specific vectors and matrices -//============================================================================== -#if defined(_PCPLATFORM) - -typedef FILE TFile; -typedef size_t TFileSize; - #define Q3DStudio_INT64_C(x) x #define Q3DStudio_UINT64_C(x) x -typedef __int64 INT64; -typedef unsigned __int64 UINT64; - -struct VECTOR4 -{ - union { - FLOAT v[4]; - UINT32 u[4]; - }; - - FLOAT &x() { return v[0]; } - FLOAT &y() { return v[1]; } - FLOAT &z() { return v[2]; } - FLOAT &w() { return v[3]; } -}; - -struct MATRIX16 -{ - union { - VECTOR4 v[4]; - FLOAT m[4][4]; - FLOAT f[16]; - }; - - FLOAT &_11() { return f[0]; } - FLOAT &_12() { return f[1]; } - FLOAT &_13() { return f[2]; } - FLOAT &_14() { return f[3]; } - FLOAT &_21() { return f[4]; } - FLOAT &_22() { return f[5]; } - FLOAT &_23() { return f[6]; } - FLOAT &_24() { return f[7]; } - FLOAT &_31() { return f[8]; } - FLOAT &_32() { return f[9]; } - FLOAT &_33() { return f[10]; } - FLOAT &_34() { return f[11]; } - FLOAT &_41() { return f[12]; } - FLOAT &_42() { return f[13]; } - FLOAT &_43() { return f[14]; } - FLOAT &_44() { return f[15]; } -}; - -#elif defined(_TEGRAPLATFORM) - -// TODO: sk - We used both WinCE and OpenKode file system utilities. Using non-OpenKode restores -// functionality in a hacky way -// but ultimately sticking to just 1 system would definitely be cleaner. typedef FILE TFile; typedef size_t TFileSize; -// typedef KDFile TFile; -// typedef KDsize TFileSize; - -#define Q3DStudio_INT64_C(x) x -#define Q3DStudio_UINT64_C(x) x - -typedef __int64 INT64; -typedef unsigned __int64 UINT64; - -struct VECTOR4 -{ - union { - FLOAT v[4]; - UINT32 u[4]; - }; - FLOAT &x() { return v[0]; } - FLOAT &y() { return v[1]; } - FLOAT &z() { return v[2]; } - FLOAT &w() { return v[3]; } -}; - -struct MATRIX16 -{ - union { - VECTOR4 v[4]; - FLOAT m[4][4]; - FLOAT f[16]; - }; - - FLOAT &_11() { return f[0]; } - FLOAT &_12() { return f[1]; } - FLOAT &_13() { return f[2]; } - FLOAT &_14() { return f[3]; } - FLOAT &_21() { return f[4]; } - FLOAT &_22() { return f[5]; } - FLOAT &_23() { return f[6]; } - FLOAT &_24() { return f[7]; } - FLOAT &_31() { return f[8]; } - FLOAT &_32() { return f[9]; } - FLOAT &_33() { return f[10]; } - FLOAT &_34() { return f[11]; } - FLOAT &_41() { return f[12]; } - FLOAT &_42() { return f[13]; } - FLOAT &_43() { return f[14]; } - FLOAT &_44() { return f[15]; } -}; - -#elif defined(_LINUXPLATFORM) || defined(_INTEGRITYPLATFORM) - -typedef FILE TFile; -typedef size_t TFileSize; - -#define Q3DStudio_INT64_C(x) x -#define Q3DStudio_UINT64_C(x) x - -typedef int64_t INT64; -typedef uint64_t UINT64; struct VECTOR4 { @@ -224,13 +116,6 @@ struct MATRIX16 FLOAT &_44() { return f[15]; } }; -#else - -#error "A platform must be defined" - -#endif - typedef INT64 TMicroSeconds; ///< Time in microseconds typedef INT64 TTimeUnit; ///< Time in milliseconds - } // namespace Q3DStudio |