summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/renderer_impl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/renderer_impl.cpp')
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp12
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);
}