diff options
author | Liang Qi <liang.qi@qt.io> | 2016-05-06 09:17:24 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-05-06 09:17:24 +0200 |
commit | 9b6d55ddf361f14c05c2965b29184a95e3c6a989 (patch) | |
tree | a1b4327662b257f4d18541ed136062d3bc38b229 /src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp | |
parent | 9a7cf067a178c7a08a7ed9f2c6253e1feade5569 (diff) | |
parent | 9530a6a8744e9eb2b4ed947b528ab7c51d8c360f (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I3c6a93917cb46868cdb9dd50566b90c70f67102e
Diffstat (limited to 'src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp')
-rw-r--r-- | src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp index 0e77befe04..d91004fbee 100644 --- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp +++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp @@ -496,11 +496,6 @@ void Updater::visitGeometryNode(Node *n) if (e->batch) renderer->invalidateBatchAndOverlappingRenderOrders(e->batch); } - if (n->dirtyState & QSGNode::DirtyMaterial) { - Element *e = n->element(); - if (e->batch && e->batch->isMaterialCompatible(e) == BatchBreaksOnCompare) - renderer->invalidateBatchAndOverlappingRenderOrders(e->batch); - } } SHADOWNODE_TRAVERSE(n) visitNode(child); @@ -1240,7 +1235,10 @@ void Renderer::nodeChanged(QSGNode *node, QSGNode::DirtyState state) if (e->isMaterialBlended != blended) { m_rebuild |= Renderer::FullRebuild; e->isMaterialBlended = blended; - } else if (!e->batch) { + } else if (e->batch) { + if (e->batch->isMaterialCompatible(e) == BatchBreaksOnCompare) + invalidateBatchAndOverlappingRenderOrders(e->batch); + } else { m_rebuild |= Renderer::BuildBatches; } } |