diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2016-05-17 10:56:24 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2016-05-19 04:34:06 +0000 |
commit | 72f2c87d15c76cc861699aea536e01bc8d56c8f2 (patch) | |
tree | 83693090187220f613ff4be790c60ad5f342cb61 /tools | |
parent | 67537fa10c24b9f098a659ed4982ce4235395724 (diff) |
qgltf: mark types movable/complex
All structs are Q_MOVABLE_TYPE, except Node, whose
address is used as its identity, so by definition it
is not trivially relocatable. Therefore explicitly
marked as Q_COMPLEX_TYPE.
Change-Id: I338491a57cc0f70b3971dec34b7dd9d913a92462
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/qgltf/qgltf.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/qgltf/qgltf.cpp b/tools/qgltf/qgltf.cpp index f879e421f..b57ea8df2 100644 --- a/tools/qgltf/qgltf.cpp +++ b/tools/qgltf/qgltf.cpp @@ -352,6 +352,17 @@ protected: Node *m_rootNode; QVector<AnimationInfo> m_animations; }; +QT_BEGIN_NAMESPACE +Q_DECLARE_TYPEINFO(Importer::BufferInfo, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(Importer::MeshInfo::BufferView, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(Importer::MeshInfo::Accessor, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(Importer::MaterialInfo, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(Importer::CameraInfo, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(Importer::EmbeddedTextureInfo, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(Importer::Node, Q_COMPLEX_TYPE); // uses address as identity +Q_DECLARE_TYPEINFO(Importer::KeyFrame, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(Importer::AnimationInfo, Q_MOVABLE_TYPE); +QT_END_NAMESPACE Importer::Importer() : m_rootNode(nullptr) @@ -1265,6 +1276,8 @@ private: QVector<Param> attributes; QVector<Param> uniforms; }; + friend class QTypeInfo<ProgramInfo>; + friend class QTypeInfo<ProgramInfo::Param>; void writeShader(const QString &src, const QString &dst, const QVector<QPair<QByteArray, QByteArray> > &substTab); QString exportNode(const Importer::Node *n, QJsonObject &nodes); @@ -1297,6 +1310,7 @@ private: bool opaque; ProgramInfo *prog; }; + friend class QTypeInfo<TechniqueInfo>; QVector<TechniqueInfo> m_techniques; QSet<ProgramInfo *> m_usedPrograms; @@ -1305,6 +1319,11 @@ private: QHash<QString, bool> m_imageHasAlpha; }; +QT_BEGIN_NAMESPACE +Q_DECLARE_TYPEINFO(GltfExporter::ProgramInfo, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(GltfExporter::ProgramInfo::Param, Q_MOVABLE_TYPE); +Q_DECLARE_TYPEINFO(GltfExporter::TechniqueInfo, Q_MOVABLE_TYPE); +QT_END_NAMESPACE GltfExporter::GltfExporter(Importer *importer) : Exporter(importer) |