From 498a96bba904808405ca9b8d8aa5e028689b53d4 Mon Sep 17 00:00:00 2001 From: Ryan Hamley Date: Tue, 12 May 2020 17:19:47 -0700 Subject: [PATCH] Fix image expression (#9668) --- src/source/worker.js | 6 ++++++ src/source/worker_source.js | 1 + src/style/properties.js | 8 ++++---- src/style/style_layer.js | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/source/worker.js b/src/source/worker.js index ab6827e3afc..27a10fa3a54 100644 --- a/src/source/worker.js +++ b/src/source/worker.js @@ -77,6 +77,12 @@ export default class Worker { setImages(mapId: string, images: Array, callback: WorkerTileCallback) { this.availableImages[mapId] = images; + for (const workerSource in this.workerSources[mapId]) { + const ws = this.workerSources[mapId][workerSource]; + for (const source in ws) { + ws[source].availableImages = images; + } + } callback(); } diff --git a/src/source/worker_source.js b/src/source/worker_source.js index 7acc8140728..c800049e3b3 100644 --- a/src/source/worker_source.js +++ b/src/source/worker_source.js @@ -71,6 +71,7 @@ export type WorkerDEMTileCallback = (err: ?Error, result: ?DEMData) => void; * @param layerIndex */ export interface WorkerSource { + availableImages: Array, // Disabled due to https://github.com/facebook/flow/issues/5208 // constructor(actor: Actor, layerIndex: StyleLayerIndex): WorkerSource; diff --git a/src/style/properties.js b/src/style/properties.js index 1f6f971ec0f..57829f85bdf 100644 --- a/src/style/properties.js +++ b/src/style/properties.js @@ -317,10 +317,10 @@ export class Transitioning { this._values = (Object.create(properties.defaultTransitioningPropertyValues): any); } - possiblyEvaluate(parameters: EvaluationParameters, availableImages?: Array): PossiblyEvaluated { + possiblyEvaluate(parameters: EvaluationParameters, canonical?: CanonicalTileID, availableImages?: Array): PossiblyEvaluated { const result = new PossiblyEvaluated(this._properties); // eslint-disable-line no-use-before-define for (const property of Object.keys(this._values)) { - result._values[property] = this._values[property].possiblyEvaluate(parameters, availableImages); + result._values[property] = this._values[property].possiblyEvaluate(parameters, canonical, availableImages); } return result; } @@ -385,10 +385,10 @@ export class Layout { return result; } - possiblyEvaluate(parameters: EvaluationParameters, availableImages?: Array): PossiblyEvaluated { + possiblyEvaluate(parameters: EvaluationParameters, canonical?: CanonicalTileID, availableImages?: Array): PossiblyEvaluated { const result = new PossiblyEvaluated(this._properties); // eslint-disable-line no-use-before-define for (const property of Object.keys(this._values)) { - result._values[property] = this._values[property].possiblyEvaluate(parameters, availableImages); + result._values[property] = this._values[property].possiblyEvaluate(parameters, canonical, availableImages); } return result; } diff --git a/src/style/style_layer.js b/src/style/style_layer.js index 82c3f68df4d..ce06dcb9ace 100644 --- a/src/style/style_layer.js +++ b/src/style/style_layer.js @@ -199,10 +199,10 @@ class StyleLayer extends Evented { } if (this._unevaluatedLayout) { - (this: any).layout = this._unevaluatedLayout.possiblyEvaluate(parameters, availableImages); + (this: any).layout = this._unevaluatedLayout.possiblyEvaluate(parameters, undefined, availableImages); } - (this: any).paint = this._transitioningPaint.possiblyEvaluate(parameters, availableImages); + (this: any).paint = this._transitioningPaint.possiblyEvaluate(parameters, undefined, availableImages); } serialize() {