summaryrefslogtreecommitdiffstats
path: root/src/core/transforms
diff options
context:
space:
mode:
authorMike Krus <mike.krus@kdab.com>2020-02-26 19:42:08 +0000
committerMike Krus <mike.krus@kdab.com>2020-04-07 07:55:41 +0000
commita1d2f784dc508eeb1fdbd613f4c9e077633501da (patch)
tree8ffc57834d1902ff8510b702cd57701b5e099cf3 /src/core/transforms
parent4af0d097e76f01957b03dfa76d335d99450e438d (diff)
Track dirty state on front end nodes
Nothing clears the state yet, will be up to the core aspect to do that. Change-Id: Ia3a5297a4b837b1d67545bd29ddce56666c520f3 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/core/transforms')
-rw-r--r--src/core/transforms/qtransform.cpp8
-rw-r--r--src/core/transforms/qtransform_p.h3
2 files changed, 11 insertions, 0 deletions
diff --git a/src/core/transforms/qtransform.cpp b/src/core/transforms/qtransform.cpp
index edbca7280..dedb27b26 100644
--- a/src/core/transforms/qtransform.cpp
+++ b/src/core/transforms/qtransform.cpp
@@ -243,6 +243,14 @@ void QTransformPrivate::setWorldMatrix(const QMatrix4x4 &worldMatrix)
q->blockNotifications(blocked);
}
+void QTransformPrivate::update()
+{
+ if (!m_blockNotifications)
+ m_dirty = true;
+ markDirty(QScene::TransformDirty);
+ QNodePrivate::update();
+}
+
void QTransform::setMatrix(const QMatrix4x4 &m)
{
Q_D(QTransform);
diff --git a/src/core/transforms/qtransform_p.h b/src/core/transforms/qtransform_p.h
index 56053309e..81c8489a7 100644
--- a/src/core/transforms/qtransform_p.h
+++ b/src/core/transforms/qtransform_p.h
@@ -78,7 +78,10 @@ public:
QMatrix4x4 m_worldMatrix;
+ bool m_dirty;
+
void setWorldMatrix(const QMatrix4x4 &worldMatrix);
+ void update() override;
};
struct QTransformData