diff options
author | Robin Burchell <robin.burchell@crimson.no> | 2017-03-13 16:33:18 +0100 |
---|---|---|
committer | Robin Burchell <robin.burchell@crimson.no> | 2017-03-15 14:23:25 +0000 |
commit | 212ccd59627deb8c06227dbf0f3f3329006c326e (patch) | |
tree | fec9b644ba056f542359c87b79dc72a3a91f6606 /src/quick/scenegraph/coreapi/qsgrenderer_p.h | |
parent | 12e82111ab86669969430ab10118236d8d846d33 (diff) |
QSGDistanceFieldGlyphNode: Remove per-node QLinkedList of nodes to delete
We avoided deleting these nodes directly due to preprocess, but this is
a bit of a hack. QSGRenderer::preprocess already contains some work to
allow for modification of nodes at preprocess time, but it didn't allow
for detecting dead nodes.
By marking a pointer as not to be touched if it is removed during preprocess,
we can remove the per-node QLinkedList and delete directly, while at the same
time, still not touching deleted nodes later on in preprocess.
Change-Id: I99a1ea65d3fe0b73db73e4a1d10d999d56edcdc4
Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
Diffstat (limited to 'src/quick/scenegraph/coreapi/qsgrenderer_p.h')
-rw-r--r-- | src/quick/scenegraph/coreapi/qsgrenderer_p.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgrenderer_p.h b/src/quick/scenegraph/coreapi/qsgrenderer_p.h index 4589685765..1ea2775e6f 100644 --- a/src/quick/scenegraph/coreapi/qsgrenderer_p.h +++ b/src/quick/scenegraph/coreapi/qsgrenderer_p.h @@ -118,11 +118,13 @@ private: QSGNodeUpdater *m_node_updater; QSet<QSGNode *> m_nodes_to_preprocess; + QSet<QSGNode *> m_nodes_dont_preprocess; const QSGBindable *m_bindable; uint m_changed_emitted : 1; uint m_is_rendering : 1; + uint m_is_preprocessing : 1; }; class Q_QUICK_PRIVATE_EXPORT QSGBindable |