diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2017-04-04 18:52:35 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2017-04-05 11:49:20 +0000 |
commit | 84b114e4f310c787c7b1d2ac0edfbdb9d943fcc6 (patch) | |
tree | 640a3f4ec4c256e2fd8335226e864cac8f9c5909 /src/gui/vulkan/qvulkaninstance.h | |
parent | fdd32329ab26023e1e74017e3e602ffd91928027 (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.h | 44 |
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 &); |