Fix accidental regression conditional layer evaluation (#2705)
This commit is contained in:
@@ -309,7 +309,14 @@ std::unique_ptr<RenderTree> RenderOrchestrator::createRenderTree(
|
||||
const bool layerAddedOrChanged = layerDiff.added.count(id) || layerDiff.changed.count(id);
|
||||
evaluationParameters.layerChanged = layerAddedOrChanged;
|
||||
evaluationParameters.hasCrossfade = layer.hasCrossfade();
|
||||
if (layerAddedOrChanged || zoomChanged || evaluationParameters.hasCrossfade || layer.hasTransition()) {
|
||||
|
||||
// Only re-evaluate on change of zoom if the style has some reference to it
|
||||
using Dependency = expression::Dependency;
|
||||
const bool zoomChangedAndMatters = zoomChanged && !layerAddedOrChanged &&
|
||||
(layer.getStyleDependencies() & Dependency::Zoom);
|
||||
|
||||
if (layerAddedOrChanged || zoomChangedAndMatters || evaluationParameters.hasCrossfade ||
|
||||
layer.hasTransition()) {
|
||||
const auto previousMask = layer.evaluatedProperties->constantsMask();
|
||||
layer.evaluate(evaluationParameters);
|
||||
if (previousMask != layer.evaluatedProperties->constantsMask()) {
|
||||
|
||||
Reference in New Issue
Block a user