summaryrefslogtreecommitdiffstats
path: root/src/core/transforms
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2017-03-15 10:17:05 +0100
committerPaul Lemire <paul.lemire@kdab.com>2018-02-02 13:58:34 +0000
commit437a33de9336a5c50711e63dd6dfcd86ad28d5a5 (patch)
tree6f6cbf6fa5285a79cda6a849a0b96e744ec840c6 /src/core/transforms
parent46319648436814afb5a77755dde6681e304befaf (diff)
Render: Use SIMD Vectors and Matrices in the backend
Change-Id: I19b3b2f8fcb06eb2bc600ebe370465dd15a8eabc Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/core/transforms')
-rw-r--r--src/core/transforms/matrix4x4_p.h12
-rw-r--r--src/core/transforms/vector3d_p.h12
-rw-r--r--src/core/transforms/vector4d_p.h12
3 files changed, 36 insertions, 0 deletions
diff --git a/src/core/transforms/matrix4x4_p.h b/src/core/transforms/matrix4x4_p.h
index 18f5db4c3..d100d3d3b 100644
--- a/src/core/transforms/matrix4x4_p.h
+++ b/src/core/transforms/matrix4x4_p.h
@@ -83,4 +83,16 @@ QT_END_NAMESPACE
#endif
+template<typename UsingType>
+Q_ALWAYS_INLINE QMatrix4x4 convertToQMatrix4x4(const UsingType &v)
+{
+ return v.toQMatrix4x4();
+}
+
+template<>
+Q_ALWAYS_INLINE QMatrix4x4 convertToQMatrix4x4<QMatrix4x4>(const QMatrix4x4 &v)
+{
+ return v;
+}
+
#endif // QT3DCORE_MATRIX4X4_P_H
diff --git a/src/core/transforms/vector3d_p.h b/src/core/transforms/vector3d_p.h
index 6467d7686..80e936903 100644
--- a/src/core/transforms/vector3d_p.h
+++ b/src/core/transforms/vector3d_p.h
@@ -74,4 +74,16 @@ QT_END_NAMESPACE
#endif
+template<typename UsingType>
+Q_ALWAYS_INLINE QVector3D convertToQVector3D(const UsingType &v)
+{
+ return v.toQVector3D();
+}
+
+template<>
+Q_ALWAYS_INLINE QVector3D convertToQVector3D<QVector3D>(const QVector3D &v)
+{
+ return v;
+}
+
#endif // QT3DCORE_VECTOR3D_P_H
diff --git a/src/core/transforms/vector4d_p.h b/src/core/transforms/vector4d_p.h
index a03dc234f..dbfaffffd 100644
--- a/src/core/transforms/vector4d_p.h
+++ b/src/core/transforms/vector4d_p.h
@@ -74,4 +74,16 @@ QT_END_NAMESPACE
#endif
+template<typename UsingType>
+Q_ALWAYS_INLINE QVector4D convertToQVector4D(const UsingType &v)
+{
+ return v.toQVector4D();
+}
+
+template<>
+Q_ALWAYS_INLINE QVector4D convertToQVector4D<QVector4D>(const QVector4D &v)
+{
+ return v;
+}
+
#endif // QT3DCORE_VECTOR4D_P_H