summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/renderer_impl.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-04-10 15:11:48 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-04-17 17:21:41 +0300
commitb96d824b2de44d210a8e06fc7c6c4f05c4e98fe2 (patch)
treee025ba720d76f5a96e2132c3612b048d85dfd141 /src/mbgl/renderer/renderer_impl.cpp
parent150b427300af6425e78a687ce275feae4a7ccc9d (diff)
downloadqtlocation-mapboxgl-b96d824b2de44d210a8e06fc7c6c4f05c4e98fe2.tar.gz
[core] Simplify RenderLayer interface.
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);
}