summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/renderer_impl.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-04-08 12:24:02 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-04-09 13:04:21 +0300
commit8faf47ab5edcbdf6a72e10c57320f72fdec8fbf8 (patch)
tree64bb1a270eca2aa820bdae05f94c8bd315e2a9f0 /src/mbgl/renderer/renderer_impl.cpp
parentf22c014b91b0b1f0774247ae38ec31dc5ecf0f9d (diff)
downloadqtlocation-mapboxgl-8faf47ab5edcbdf6a72e10c57320f72fdec8fbf8.tar.gz
[core] Pass only visible render layers to source in renderer
This simplifies the code and make it slightly more performant. Also, this change enables initialization the `RenderTile.used` field from inside the source (currently done in render layers).
Diffstat (limited to 'src/mbgl/renderer/renderer_impl.cpp')
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp
index f1fb31f693..62594372a0 100644
--- a/src/mbgl/renderer/renderer_impl.cpp
+++ b/src/mbgl/renderer/renderer_impl.cpp
@@ -248,17 +248,15 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
for (const auto& layerImpl : *layerImpls) {
RenderLayer* layer = getRenderLayer(layerImpl->id);
const auto* layerInfo = layerImpl->getTypeInfo();
- bool layerNeedsRendering = layer->needsRendering(zoomHistory.lastZoom);
-
+ const bool layerNeedsRendering = layer->needsRendering(zoomHistory.lastZoom);
staticData->has3D = (staticData->has3D || layerInfo->pass3d == LayerTypeInfo::Pass3D::Required);
if (layerInfo->source != LayerTypeInfo::Source::NotRequired) {
if (layerImpl->source == sourceImpl->id) {
- sourceNeedsRendering |= layerNeedsRendering;
sourceNeedsRelayout = (sourceNeedsRelayout || hasImageDiff || hasLayoutDifference(layerDiff, layerImpl->id));
- filteredLayersForSource.push_back(layerImpl);
-
if (layerNeedsRendering) {
+ sourceNeedsRendering = true;
+ filteredLayersForSource.push_back(layerImpl);
renderItems.emplace_back(*layer, source);
}
}