aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@qt.io>2020-08-11 11:28:36 +0200
committerAndy Nichols <andy.nichols@qt.io>2020-08-11 10:06:32 +0000
commita4fb90f2239de76751922b3c54893a0207b59092 (patch)
tree857a853dcf819da8d7f320b8eb020d3c2740869b /src/quick/scenegraph
parent212c5212c652d517901bbbd9581120b938a10f69 (diff)
Force Batch Rebuild if SubtreeBlocked includes an opacity change
Fixes: QTBUG-85965 Pick-to: 5.15 Change-Id: I2f5aba7fbde7ad2149d408d29db9219f33f13ca8 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/quick/scenegraph')
-rw-r--r--src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
index 249f9f9172..f65530dd1e 100644
--- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
+++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
@@ -1330,6 +1330,11 @@ void Renderer::nodeChanged(QSGNode *node, QSGNode::DirtyState state)
// to avoid that any of the others are processed twice.
if (state & QSGNode::DirtySubtreeBlocked) {
Node *sn = m_nodes.value(node);
+
+ // Force a batch rebuild if this includes an opacity change
+ if (state & QSGNode::DirtyOpacity)
+ m_rebuild |= FullRebuild;
+
bool blocked = node->isSubtreeBlocked();
if (blocked && sn) {
nodeChanged(node, QSGNode::DirtyNodeRemoved);