Only schedule the unused layers renderer removal when it's needed
This commit is contained in:
@@ -250,22 +250,6 @@ class MapRenderer extends Disposable {
|
|||||||
return layerRenderer;
|
return layerRenderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {import("../PluggableMap.js").default} map Map.
|
|
||||||
* @param {import("../PluggableMap.js").FrameState} frameState Frame state.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
removeUnusedLayerRenderers_(map, frameState) {
|
|
||||||
if (frameState) {
|
|
||||||
const layerStatesMap = getLayerStatesMap(frameState.layerStatesArray);
|
|
||||||
for (const layerKey in this.layerRenderers_) {
|
|
||||||
if (!(layerKey in layerStatesMap)) {
|
|
||||||
this.removeLayerRendererByKey_(layerKey).dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render.
|
* Render.
|
||||||
* @abstract
|
* @abstract
|
||||||
@@ -290,7 +274,14 @@ class MapRenderer extends Disposable {
|
|||||||
* @protected
|
* @protected
|
||||||
*/
|
*/
|
||||||
scheduleRemoveUnusedLayerRenderers(frameState) {
|
scheduleRemoveUnusedLayerRenderers(frameState) {
|
||||||
frameState.postRenderFunctions.push(this.removeUnusedLayerRenderers_.bind(this));
|
const layerStatesMap = getLayerStatesMap(frameState.layerStatesArray);
|
||||||
|
for (const layerKey in this.layerRenderers_) {
|
||||||
|
if (!(layerKey in layerStatesMap)) {
|
||||||
|
frameState.postRenderFunctions.push(function() {
|
||||||
|
this.removeLayerRendererByKey_(layerKey).dispose();
|
||||||
|
}.bind(this));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user