diff options
author | Mike Krus <mike.krus@kdab.com> | 2019-09-06 11:30:00 +0100 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-09-18 12:37:57 +0200 |
commit | c380b57ccf0915ac1cc9f18f59015538c7d3fab4 (patch) | |
tree | 638f71d31a95610e98e942e4ddb96a5b56175df2 /src/render/geometry/armature.cpp | |
parent | 99d7fad9034e5c4ce113f581a979d3dec7b50f4f (diff) |
Update QArmature to use direct sync
Change-Id: I2d4a34b3acb250e6e8459f1401a0a9e21db24946
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render/geometry/armature.cpp')
-rw-r--r-- | src/render/geometry/armature.cpp | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/src/render/geometry/armature.cpp b/src/render/geometry/armature.cpp index 15a26c9ec..cfa2e572a 100644 --- a/src/render/geometry/armature.cpp +++ b/src/render/geometry/armature.cpp @@ -36,6 +36,8 @@ #include "armature_p.h" +#include <Qt3DCore/qarmature.h> +#include <Qt3DCore/qabstractskeleton.h> #include <Qt3DCore/qpropertyupdatedchange.h> #include <Qt3DCore/private/qarmature_p.h> @@ -52,32 +54,20 @@ Armature::Armature() { } -void Armature::cleanup() +void Armature::syncFromFrontEnd(const QNode *frontEnd, bool firstTime) { - m_skeletonId = Qt3DCore::QNodeId(); - setEnabled(false); -} + BackendNode::syncFromFrontEnd(frontEnd, firstTime); + const QArmature *node = qobject_cast<const QArmature *>(frontEnd); + if (!node) + return; -void Armature::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) -{ - const auto typedChange = qSharedPointerCast<QNodeCreatedChange<QArmatureData>>(change); - m_skeletonId = typedChange->data.skeletonId; + m_skeletonId = node->skeleton() ? node->skeleton()->id() : QNodeId{}; } -void Armature::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) +void Armature::cleanup() { - switch (e->type()) { - case Qt3DCore::PropertyUpdated: { - const auto change = qSharedPointerCast<QPropertyUpdatedChange>(e); - if (change->propertyName() == QByteArrayLiteral("skeleton")) - m_skeletonId = change->value().value<QNodeId>(); - break; - } - - default: - break; - } - QBackendNode::sceneChangeEvent(e); + m_skeletonId = Qt3DCore::QNodeId(); + setEnabled(false); } } // namespace Render |