summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/render_orchestrator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/render_orchestrator.cpp')
-rw-r--r--src/mbgl/renderer/render_orchestrator.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/mbgl/renderer/render_orchestrator.cpp b/src/mbgl/renderer/render_orchestrator.cpp
index c70ce63c76..cf5a7d190e 100644
--- a/src/mbgl/renderer/render_orchestrator.cpp
+++ b/src/mbgl/renderer/render_orchestrator.cpp
@@ -342,15 +342,16 @@ std::unique_ptr<RenderTree> RenderOrchestrator::createRenderTree(const UpdatePar
}
}
- uint32_t i = static_cast<uint32_t>(layerRenderItems.size()) - 1;
- for (auto it = layerRenderItems.begin(); it != layerRenderItems.end(); ++it, --i) {
- RenderLayer& renderLayer = it->layer;
- renderLayer.prepare({it->source, *imageManager, *patternAtlas, *lineAtlas, updateParameters.transformState});
+ auto opaquePassCutOffEstimation = layerRenderItems.size();
+ for (auto& renderItem : layerRenderItems) {
+ RenderLayer& renderLayer = renderItem.layer;
+ renderLayer.prepare({renderItem.source, *imageManager, *patternAtlas, *lineAtlas, updateParameters.transformState});
if (renderLayer.needsPlacement()) {
layersNeedPlacement.emplace_back(renderLayer);
}
if (renderLayer.is3D() && renderTreeParameters->opaquePassCutOff == 0) {
- renderTreeParameters->opaquePassCutOff = i;
+ --opaquePassCutOffEstimation;
+ renderTreeParameters->opaquePassCutOff = uint32_t(opaquePassCutOffEstimation);
}
}
// Symbol placement.