summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2017-09-01 22:32:45 +0300
committerBruno de Oliveira Abinader <bruno@mapbox.com>2017-09-14 06:30:12 +0300
commit88a0187f214ad6fda7e2f24785826f0f430a885b (patch)
tree3b1c9df9c384a74b0c862fb35116f06e768caa23
parenta15f0f3d53665f011964cedf3ff9139a8593f94e (diff)
downloadqtlocation-mapboxgl-88a0187f214ad6fda7e2f24785826f0f430a885b.tar.gz
[core] Precompute if has image diffs when updating sources
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp
index 21d56feea9..b8b87d0343 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<Immutable<Layer::Impl>> 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;
}