aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/coreapi
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@theqtcompany.com>2014-11-04 22:04:07 -0800
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2014-11-04 22:04:19 -0800
commit4876c2aa95a58dd9dd17e94e7e725ceea5047d26 (patch)
tree845a407efe5df39d97805fd2f006f5c056ac336f /src/quick/scenegraph/coreapi
parent878b11e0a94e892c0377bca01b49706c150926ed (diff)
parent25b6fae1eb26645a30b3e7e254ce0b585757351c (diff)
Merge remote-tracking branch 'origin/5.4' into dev
Conflicts: src/qml/jsruntime/qv4errorobject_p.h Change-Id: I7fc1211295738a9fae32b783a9f001f1613785e4
Diffstat (limited to 'src/quick/scenegraph/coreapi')
-rw-r--r--src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
index ca5b038efa..9675d6e48a 100644
--- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
+++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
@@ -460,12 +460,18 @@ void Updater::visitGeometryNode(Node *n)
if (e->root) {
BatchRootInfo *info = renderer->batchRootInfo(e->root);
- info->availableOrders--;
- if (info->availableOrders < 0) {
- renderer->m_rebuild |= Renderer::BuildRenderLists;
- } else {
- renderer->m_rebuild |= Renderer::BuildRenderListsForTaggedRoots;
- renderer->m_taggedRoots << e->root;
+ while (info != 0) {
+ info->availableOrders--;
+ if (info->availableOrders < 0) {
+ renderer->m_rebuild |= Renderer::BuildRenderLists;
+ } else {
+ renderer->m_rebuild |= Renderer::BuildRenderListsForTaggedRoots;
+ renderer->m_taggedRoots << e->root;
+ }
+ if (info->parentRoot != 0)
+ info = renderer->batchRootInfo(info->parentRoot);
+ else
+ info = 0;
}
} else {
renderer->m_rebuild |= Renderer::FullRebuild;