[core] Precompute if has image diffs when updating sources

This commit is contained in:
Bruno de Oliveira Abinader
2017-09-01 22:32:45 +03:00
parent a15f0f3d53
commit 88a0187f21

View File

@@ -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;
}