diff --git a/src/core/renderer/tiles/TilesRendererBase.js b/src/core/renderer/tiles/TilesRendererBase.js index 6c37afc85..eab68e0bc 100644 --- a/src/core/renderer/tiles/TilesRendererBase.js +++ b/src/core/renderer/tiles/TilesRendererBase.js @@ -173,6 +173,7 @@ export class TilesRendererBase { visible: 0, }; this.frameCount = 0; + this.framesSinceLastLoad = 0; // callbacks this._dispatchNeedsUpdateEvent = throttle( () => { @@ -427,6 +428,24 @@ export class TilesRendererBase { } + if ( ! this.isLoading && ! runningTasks ) { + + this.framesSinceLastLoad ++; + + // Wait for 2 frames to ensure the update loop has had a chance to queue new downloads. + if ( this.framesSinceLastLoad === 2 ) { + + this.dispatchEvent( { type: 'tiles-settled' } ); + + } + + } else { + + this.framesSinceLastLoad = 0; + + } + + } resetFailedTiles() {