summaryrefslogtreecommitdiffstats
path: root/src/render
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2017-08-11 09:42:28 +0100
committerSean Harmer <sean.harmer@kdab.com>2017-08-16 13:19:31 +0000
commit867916c546903ec93597f58e3a51b1e43f662811 (patch)
treeeb59351075b59b7bfc7f057dbf8dbb6278ac34a8 /src/render
parente11df19a6854c9fb4cb1138fa619d3030b9eea8b (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.cpp3
-rw-r--r--src/render/backend/managers_p.h2
-rw-r--r--src/render/geometry/skeleton.cpp8
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;