summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPasi Keränen <pasi.keranen@qt.io>2019-05-28 10:16:55 +0300
committerPasi Keränen <pasi.keranen@qt.io>2019-05-28 15:24:33 +0300
commit07af75cf100a21da07ba12ad0c714cdfc37091aa (patch)
tree8edd3ce0bfcdb430e86580c6305df4792a38684a
parent41f9c0dde9f68e0c3fde7d491c0ebfafef7b7cfc (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.h24
-rw-r--r--src/Runtime/Source/system/Qt3DSTypes.h135
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