From de392a98465ef0de5b03909cae175af9e21d2ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Kr=C3=B6g?= Date: Sun, 1 May 2022 14:36:03 +0200 Subject: [PATCH] Don't fire rendercomplete event while icons are loading --- src/ol/renderer/canvas/VectorLayer.js | 17 +++++------------ src/ol/renderer/canvas/VectorTileLayer.js | 8 +------- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/src/ol/renderer/canvas/VectorLayer.js b/src/ol/renderer/canvas/VectorLayer.js index c83441b5f3..1e495ed189 100644 --- a/src/ol/renderer/canvas/VectorLayer.js +++ b/src/ol/renderer/canvas/VectorLayer.js @@ -62,12 +62,6 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer { */ this.animatingOrInteracting_; - /** - * @private - * @type {boolean} - */ - this.dirty_ = false; - /** * @type {ImageData} */ @@ -523,7 +517,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer { const updateWhileInteracting = vectorLayer.getUpdateWhileInteracting(); if ( - (!this.dirty_ && !updateWhileAnimating && animating) || + (this.ready && !updateWhileAnimating && animating) || (!updateWhileInteracting && interacting) ) { this.animatingOrInteracting_ = true; @@ -594,7 +588,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer { } if ( - !this.dirty_ && + this.ready && this.renderedResolution_ == resolution && this.renderedRevision_ == vectorLayerRevision && this.renderedRenderOrder_ == vectorLayerRenderOrder && @@ -611,8 +605,6 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer { this.replayGroup_ = null; - this.dirty_ = false; - const replayGroup = new CanvasBuilderGroup( getRenderTolerance(resolution, pixelRatio), extent, @@ -650,7 +642,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer { } const squaredTolerance = getSquaredRenderTolerance(resolution, pixelRatio); - + let ready = true; const render = /** * @param {import("../../Feature.js").default} feature Feature. @@ -672,7 +664,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer { userTransform, declutterBuilderGroup ); - this.dirty_ = this.dirty_ || dirty; + ready = ready && !dirty; } }.bind(this); @@ -686,6 +678,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer { render(features[i]); } this.renderedFeatures_ = features; + this.ready = ready; const replayGroupInstructions = replayGroup.finish(); const executorGroup = new ExecutorGroup( diff --git a/src/ol/renderer/canvas/VectorTileLayer.js b/src/ol/renderer/canvas/VectorTileLayer.js index 7f18341d5f..9b2463602d 100644 --- a/src/ol/renderer/canvas/VectorTileLayer.js +++ b/src/ol/renderer/canvas/VectorTileLayer.js @@ -85,12 +85,6 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { /** @private */ this.boundHandleStyleImageChange_ = this.handleStyleImageChange_.bind(this); - /** - * @private - * @type {boolean} - */ - this.dirty_ = false; - /** * @private * @type {number} @@ -289,7 +283,6 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { builderGroup, declutterBuilderGroup ); - this.dirty_ = this.dirty_ || dirty; builderState.dirty = builderState.dirty || dirty; } }; @@ -339,6 +332,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { builderState.renderedRevision = revision; builderState.renderedRenderOrder = renderOrder; builderState.renderedResolution = resolution; + this.ready = !builderState.dirty; } /**