summaryrefslogtreecommitdiffstats
path: root/src/gui/vulkan/qvulkaninstance.h
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2017-04-04 18:52:35 +0200
committerMarc Mutz <marc.mutz@kdab.com>2017-04-05 11:49:20 +0000
commit84b114e4f310c787c7b1d2ac0edfbdb9d943fcc6 (patch)
tree640a3f4ec4c256e2fd8335226e864cac8f9c5909 /src/gui/vulkan/qvulkaninstance.h
parentfdd32329ab26023e1e74017e3e602ffd91928027 (diff)
QVulkan{Layer,Extension}: various fixes
- don't export simple structs - make op== non-member - add op!= (required by EqualityComparable) - add qHash() (should be defined by Qt for every EqualityComparable class) - add Q_DECLARE_TYPEINFO Change-Id: Ia14ac3fea48a6a0ad1d8993c9408afe77bbe6c1a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/gui/vulkan/qvulkaninstance.h')
-rw-r--r--src/gui/vulkan/qvulkaninstance.h44
1 files changed, 36 insertions, 8 deletions
diff --git a/src/gui/vulkan/qvulkaninstance.h b/src/gui/vulkan/qvulkaninstance.h
index a373ceffde..ada297be43 100644
--- a/src/gui/vulkan/qvulkaninstance.h
+++ b/src/gui/vulkan/qvulkaninstance.h
@@ -56,6 +56,7 @@ typedef unsigned long VkImage;
typedef unsigned long VkImageView;
#endif
+#include <QtCore/qhashfunctions.h>
#include <QtCore/qscopedpointer.h>
#include <QtCore/qvector.h>
#include <QtCore/qbytearraylist.h>
@@ -70,25 +71,52 @@ class QVulkanFunctions;
class QVulkanDeviceFunctions;
class QWindow;
-struct Q_GUI_EXPORT QVulkanLayer
+struct QVulkanLayer
{
QByteArray name;
uint32_t version;
QVersionNumber specVersion;
QByteArray description;
- bool operator==(const QVulkanLayer &other) const {
- return name == other.name && version == other.version && specVersion == other.specVersion;
- }
};
+Q_DECLARE_TYPEINFO(QVulkanLayer, Q_MOVABLE_TYPE);
+
+inline bool operator==(const QVulkanLayer &lhs, const QVulkanLayer &rhs) Q_DECL_NOTHROW
+{
+ return lhs.name == rhs.name && lhs.version == rhs.version && lhs.specVersion == rhs.specVersion;
+}
+inline bool operator!=(const QVulkanLayer &lhs, const QVulkanLayer &rhs) Q_DECL_NOTHROW
+{ return !(lhs == rhs); }
-struct Q_GUI_EXPORT QVulkanExtension
+inline uint qHash(const QVulkanLayer &key, uint seed = 0) Q_DECL_NOTHROW
+{
+ QtPrivate::QHashCombine hash;
+ seed = hash(seed, key.name);
+ seed = hash(seed, key.version);
+ seed = hash(seed, key.specVersion);
+ return seed;
+}
+
+struct QVulkanExtension
{
QByteArray name;
uint32_t version;
- bool operator==(const QVulkanExtension &other) const {
- return name == other.name && version == other.version;
- }
};
+Q_DECLARE_TYPEINFO(QVulkanExtension, Q_MOVABLE_TYPE);
+
+inline bool operator==(const QVulkanExtension &lhs, const QVulkanExtension &rhs) Q_DECL_NOTHROW
+{
+ return lhs.name == rhs.name && lhs.version == rhs.version;
+}
+inline bool operator!=(const QVulkanExtension &lhs, const QVulkanExtension &rhs) Q_DECL_NOTHROW
+{ return !(lhs == rhs); }
+
+inline uint qHash(const QVulkanExtension &key, uint seed = 0) Q_DECL_NOTHROW
+{
+ QtPrivate::QHashCombine hash;
+ seed = hash(seed, key.name);
+ seed = hash(seed, key.version);
+ return seed;
+}
#ifndef QT_NO_DEBUG_STREAM
Q_GUI_EXPORT QDebug operator<<(QDebug, const QVulkanLayer &);