diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2017-08-11 09:42:28 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2017-08-16 13:19:31 +0000 |
commit | 867916c546903ec93597f58e3a51b1e43f662811 (patch) | |
tree | eb59351075b59b7bfc7f057dbf8dbb6278ac34a8 /src/render | |
parent | e11df19a6854c9fb4cb1138fa619d3030b9eea8b (diff) |
Change SkeletonManager to accept HSkeleton directly
Avoids repeating the same lookup from QNodeId each time we mark a
skeleton as dirty.
Change-Id: I8a1365949532f6707c001b6f605efdedfb322f31
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/render')
-rw-r--r-- | src/render/backend/managers.cpp | 3 | ||||
-rw-r--r-- | src/render/backend/managers_p.h | 2 | ||||
-rw-r--r-- | src/render/geometry/skeleton.cpp | 8 |
3 files changed, 6 insertions, 7 deletions
diff --git a/src/render/backend/managers.cpp b/src/render/backend/managers.cpp index 99268ed49..6e8c1376d 100644 --- a/src/render/backend/managers.cpp +++ b/src/render/backend/managers.cpp @@ -75,9 +75,8 @@ void FrameGraphManager::releaseNode(Qt3DCore::QNodeId id) delete m_nodes.take(id); } -void SkeletonManager::addDirtySkeleton(DirtyFlag dirtyFlag, Qt3DCore::QNodeId skeletonId) +void SkeletonManager::addDirtySkeleton(DirtyFlag dirtyFlag, HSkeleton skeletonHandle) { - const HSkeleton skeletonHandle = lookupHandle(skeletonId); switch (dirtyFlag) { case SkeletonDataDirty: m_dirtyDataSkeletons.push_back(skeletonHandle); diff --git a/src/render/backend/managers_p.h b/src/render/backend/managers_p.h index 20a2eadba..c76f5b315 100644 --- a/src/render/backend/managers_p.h +++ b/src/render/backend/managers_p.h @@ -450,7 +450,7 @@ public: SkeletonTransformsDirty }; - void addDirtySkeleton(DirtyFlag dirtyFlag, Qt3DCore::QNodeId skeletonId); + void addDirtySkeleton(DirtyFlag dirtyFlag, HSkeleton skeletonHandle); QVector<HSkeleton> dirtySkeletons(DirtyFlag dirtyFlag); private: diff --git a/src/render/geometry/skeleton.cpp b/src/render/geometry/skeleton.cpp index d7e783900..119b0426c 100644 --- a/src/render/geometry/skeleton.cpp +++ b/src/render/geometry/skeleton.cpp @@ -92,7 +92,7 @@ void Skeleton::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &cha m_createJoints = data.createJoints; if (!m_source.isEmpty()) { markDirty(AbstractRenderer::SkeletonDataDirty); - m_skeletonManager->addDirtySkeleton(SkeletonManager::SkeletonDataDirty, peerId()); + m_skeletonManager->addDirtySkeleton(SkeletonManager::SkeletonDataDirty, m_skeletonHandle); } break; } @@ -104,7 +104,7 @@ void Skeleton::initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &cha m_rootJointId = data.rootJointId; if (!m_rootJointId.isNull()) { markDirty(AbstractRenderer::SkeletonDataDirty); - m_skeletonManager->addDirtySkeleton(SkeletonManager::SkeletonDataDirty, peerId()); + m_skeletonManager->addDirtySkeleton(SkeletonManager::SkeletonDataDirty, m_skeletonHandle); } break; } @@ -121,7 +121,7 @@ void Skeleton::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) if (source != m_source) { m_source = source; markDirty(AbstractRenderer::SkeletonDataDirty); - m_skeletonManager->addDirtySkeleton(SkeletonManager::SkeletonDataDirty, peerId()); + m_skeletonManager->addDirtySkeleton(SkeletonManager::SkeletonDataDirty, m_skeletonHandle); } } else if (change->propertyName() == QByteArrayLiteral("createJointsEnabled")) { m_createJoints = change->value().toBool(); @@ -139,7 +139,7 @@ void Skeleton::sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) // the relationships between joints and skeleton. Mark the skeleton data as // dirty so that we get a loadSkeletonJob executed to process this skeleton. markDirty(AbstractRenderer::SkeletonDataDirty); - m_skeletonManager->addDirtySkeleton(SkeletonManager::SkeletonDataDirty, peerId()); + m_skeletonManager->addDirtySkeleton(SkeletonManager::SkeletonDataDirty, m_skeletonHandle); } break; |