summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2019-10-01 22:59:52 +0100
committerMike Krus <mike.krus@kdab.com>2019-10-08 12:48:13 +0100
commit7433513f5f08d02b9ed6233c4159f8f32f0db556 (patch)
tree0508fcebaf55981de53026bf954c366240aff098 /src/core
parentcae430b9ede8327217e5fa8e48b0de1f3d7cc364 (diff)
Update animation evaluation jobs to use direct sync
Animation data is now stored in the job which propagates them to the frontend at the end of the frame. Animated properties are passed using Qt's property system. Animated poses are passed via the frontend skeleton node. Syncing on new frame will take care of propagating both for use in other aspects. Callbacks are called by the job directly or stored and invoked on the main thread depending on the callback setting. Change-Id: I78675715799300bc1b27f854f1a445c00a2ac734 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/core')
-rw-r--r--src/core/transforms/qabstractskeleton.cpp8
-rw-r--r--src/core/transforms/qabstractskeleton_p.h3
2 files changed, 11 insertions, 0 deletions
diff --git a/src/core/transforms/qabstractskeleton.cpp b/src/core/transforms/qabstractskeleton.cpp
index 1bc7247a7..5f3b05eb8 100644
--- a/src/core/transforms/qabstractskeleton.cpp
+++ b/src/core/transforms/qabstractskeleton.cpp
@@ -60,6 +60,14 @@ const QAbstractSkeletonPrivate *QAbstractSkeletonPrivate::get(const QAbstractSke
}
/*!
+ \internal
+ */
+QAbstractSkeletonPrivate *QAbstractSkeletonPrivate::get(QAbstractSkeleton *q)
+{
+ return q->d_func();
+}
+
+/*!
\qmltype AbstractSkeleton
\inqmlmodule Qt3D.Core
\inherits Node
diff --git a/src/core/transforms/qabstractskeleton_p.h b/src/core/transforms/qabstractskeleton_p.h
index e4db7b11e..be50c24f5 100644
--- a/src/core/transforms/qabstractskeleton_p.h
+++ b/src/core/transforms/qabstractskeleton_p.h
@@ -53,6 +53,7 @@
#include <Qt3DCore/private/qnode_p.h>
#include <Qt3DCore/private/qskeletoncreatedchange_p.h>
+#include <Qt3DCore/private/sqt_p.h>
QT_BEGIN_NAMESPACE
@@ -67,10 +68,12 @@ public:
Q_DECLARE_PUBLIC(QAbstractSkeleton)
static const QAbstractSkeletonPrivate *get(const QAbstractSkeleton *q);
+ static QAbstractSkeletonPrivate *get(QAbstractSkeleton *q);
QSkeletonCreatedChangeBase::SkeletonType m_type;
int m_jointCount;
+ QVector<Sqt> m_localPoses;
};
} // namespace Qt3DCore