summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2016-03-22 11:56:39 +0000
committerSean Harmer <sean.harmer@kdab.com>2016-03-24 07:27:54 +0000
commit1a261c0eaf5c54426a3d7dd5ab9627a1f32247ec (patch)
tree6b09d7f382111a2bcf5d26eec9f60c5f32b3dfa8
parent3da0d37c646bdc98b768291323b5405c8f3c739e (diff)
QAttribute creates creation changes
Change-Id: Ief63118100f03266e53aebd9732d5247e6461383 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
-rw-r--r--src/render/geometry/qattribute.cpp17
-rw-r--r--src/render/geometry/qattribute.h1
-rw-r--r--src/render/geometry/qattribute_p.h13
3 files changed, 31 insertions, 0 deletions
diff --git a/src/render/geometry/qattribute.cpp b/src/render/geometry/qattribute.cpp
index 3f94bff52..a0af3b259 100644
--- a/src/render/geometry/qattribute.cpp
+++ b/src/render/geometry/qattribute.cpp
@@ -397,6 +397,23 @@ QString QAttribute::defaultTangentAttributeName()
return QStringLiteral("vertexTangent");
}
+Qt3DCore::QNodeCreatedChangeBasePtr QAttribute::createNodeCreationChange() const
+{
+ auto creationChange = Qt3DCore::QNodeCreatedChangePtr<QAttributeData>::create(this);
+ auto &data = creationChange->data;
+ Q_D(const QAttribute);
+ data.bufferId = qIdForNode(d->m_buffer);
+ data.name = d->m_name;
+ data.dataType = d->m_dataType;
+ data.dataSize = d->m_dataSize;
+ data.count = d->m_count;
+ data.byteStride = d->m_byteStride;
+ data.byteOffset = d->m_byteOffset;
+ data.divisor = d->m_divisor;
+ data.attributeType = d->m_attributeType;
+ return creationChange;
+}
+
} // Qt3DRender
QT_END_NAMESPACE
diff --git a/src/render/geometry/qattribute.h b/src/render/geometry/qattribute.h
index 6fbf83f4d..99da0f1d4 100644
--- a/src/render/geometry/qattribute.h
+++ b/src/render/geometry/qattribute.h
@@ -136,6 +136,7 @@ protected:
private:
Q_DECLARE_PRIVATE(QAttribute)
QT3D_CLONEABLE(QAttribute)
+ Qt3DCore::QNodeCreatedChangeBasePtr createNodeCreationChange() const Q_DECL_OVERRIDE;
};
} // Qt3DRender
diff --git a/src/render/geometry/qattribute_p.h b/src/render/geometry/qattribute_p.h
index 02b03987d..8731e3195 100644
--- a/src/render/geometry/qattribute_p.h
+++ b/src/render/geometry/qattribute_p.h
@@ -80,6 +80,19 @@ public:
QAttribute::AttributeType m_attributeType;
};
+struct QAttributeData
+{
+ Qt3DCore::QNodeId bufferId;
+ QString name;
+ QAttribute::VertexBaseType dataType;
+ uint dataSize;
+ uint count;
+ uint byteStride;
+ uint byteOffset;
+ uint divisor;
+ QAttribute::AttributeType attributeType;
+};
+
} // Qt3DRender
QT_END_NAMESPACE