diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-04-04 12:21:00 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-04-04 20:28:23 +0300 |
commit | 1a5b933983d5b30b7a2947bbdf152122c38e11c1 (patch) | |
tree | f02870cb21d01cd227b51e549aa57b4d30ae8515 | |
parent | 4b19324c74879154381a3193401d50b8a1d9ee1d (diff) | |
download | qtlocation-mapboxgl-1a5b933983d5b30b7a2947bbdf152122c38e11c1.tar.gz |
[core] Minor performance tweaks in renderer impl
-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; |