diff options
Diffstat (limited to 'src/mbgl/renderer/renderer_impl.cpp')
-rw-r--r-- | src/mbgl/renderer/renderer_impl.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 4a618919d4..4ba1fc6bbc 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -175,12 +175,14 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { // Create render layers for newly added layers. for (const auto& entry : layerDiff.added) { - renderLayers.emplace(entry.first, LayerManager::get()->createRenderLayer(entry.second)); + auto renderLayer = LayerManager::get()->createRenderLayer(entry.second); + renderLayer->transition(transitionParameters); + renderLayers.emplace(entry.first, std::move(renderLayer)); } // Update render layers for changed layers. for (const auto& entry : layerDiff.changed) { - renderLayers.at(entry.first)->setImpl(entry.second.after); + renderLayers.at(entry.first)->transition(transitionParameters, entry.second.after); } if (!layerDiff.removed.empty() || !layerDiff.added.empty() || !layerDiff.changed.empty()) { @@ -191,12 +193,6 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { for (const auto& entry : renderLayers) { RenderLayer& layer = *entry.second; const bool layerAddedOrChanged = layerDiff.added.count(entry.first) || layerDiff.changed.count(entry.first); - - if (layerAddedOrChanged) { - layer.transition(transitionParameters); - layer.update(); - } - if (layerAddedOrChanged || zoomChanged || layer.hasTransition() || layer.hasCrossfade()) { layer.evaluate(evaluationParameters); } |