diff options
-rw-r--r-- | src/mbgl/renderer/renderer_impl.cpp | 8 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile.cpp | 7 |
2 files changed, 7 insertions, 8 deletions
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 0fa418ebbe..9446cbc194 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -165,7 +165,6 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { imageManager->notifyIfMissingImageAdded(); imageManager->setLoaded(updateParameters.spriteLoaded); - const LayerDifference layerDiff = diffLayers(layerImpls, updateParameters.layers); layerImpls = updateParameters.layers; @@ -191,15 +190,14 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { // Update layers for class and zoom changes. for (const auto& entry : renderLayers) { RenderLayer& layer = *entry.second; - const bool layerAdded = layerDiff.added.count(entry.first); - const bool layerChanged = layerDiff.changed.count(entry.first); + const bool layerAddedOrChanged = layerDiff.added.count(entry.first) || layerDiff.changed.count(entry.first); - if (layerAdded || layerChanged) { + if (layerAddedOrChanged) { layer.transition(transitionParameters); layer.update(); } - if (layerAdded || layerChanged || zoomChanged || layer.hasTransition() || layer.hasCrossfade()) { + if (layerAddedOrChanged || zoomChanged || layer.hasTransition() || layer.hasCrossfade()) { layer.evaluate(evaluationParameters); } } diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp index 9165c03267..a3ae4217c9 100644 --- a/src/mbgl/tile/geometry_tile.cpp +++ b/src/mbgl/tile/geometry_tile.cpp @@ -93,12 +93,13 @@ void GeometryTile::setLayers(const std::vector<Immutable<Layer::Impl>>& layers) pending = true; std::vector<Immutable<Layer::Impl>> impls; + impls.reserve(layers.size()); for (const auto& layer : layers) { // Skip irrelevant layers. - if (layer->getTypeInfo()->source == LayerTypeInfo::Source::NotRequired || - layer->source != sourceID || - id.overscaledZ < std::floor(layer->minZoom) || + assert(layer->getTypeInfo()->source != LayerTypeInfo::Source::NotRequired); + assert(layer->source == sourceID); + if (id.overscaledZ < std::floor(layer->minZoom) || id.overscaledZ >= std::ceil(layer->maxZoom) || layer->visibility == VisibilityType::None) { continue; |