From 88a0187f214ad6fda7e2f24785826f0f430a885b Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Fri, 1 Sep 2017 22:32:45 +0300 Subject: [PATCH] [core] Precompute if has image diffs when updating sources --- src/mbgl/renderer/renderer_impl.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 21d56feea..b8b87d034 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -186,6 +186,8 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { renderSources.emplace(entry.first, std::move(renderSource)); } + const bool hasImageDiff = !(imageDiff.added.empty() && imageDiff.removed.empty() && imageDiff.changed.empty()); + // Update all sources. for (const auto& source : *sourceImpls) { std::vector> filteredLayers; @@ -203,11 +205,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { needsRendering = true; } - if (!needsRelayout && ( - hasLayoutDifference(layerDiff, layer->id) || - !imageDiff.added.empty() || - !imageDiff.removed.empty() || - !imageDiff.changed.empty())) { + if (!needsRelayout && (hasImageDiff || hasLayoutDifference(layerDiff, layer->id))) { needsRelayout = true; }