From f615c1aaa460d2936fc50cac5ad9b6fe66fc9e5c Mon Sep 17 00:00:00 2001 From: Tobias Gassmann Date: Wed, 10 Dec 2025 21:42:21 +0100 Subject: [PATCH 1/5] introduce 'tiles-settled' event fire the 'tiles-settled' event when all tiles have finished loading --- src/core/renderer/tiles/TilesRendererBase.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/core/renderer/tiles/TilesRendererBase.js b/src/core/renderer/tiles/TilesRendererBase.js index 6c37afc85..04061a37c 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++; + + // If we have gone 2 full frames with zero activity, we are truly settled (one to calculate visibility, one to process potential results). + if (this.framesSinceLastLoad === 2) { + + this.dispatchEvent({ type: 'tiles-settled' }); + + } + + } else { + + this.framesSinceLastLoad = 0; + + } + + } resetFailedTiles() { From 16dbb8b49c4e34ebb6ee88102169f152dba3faca Mon Sep 17 00:00:00 2001 From: Tobias Gassmann Date: Thu, 11 Dec 2025 08:29:45 +0100 Subject: [PATCH 2/5] fix formatting --- src/core/renderer/tiles/TilesRendererBase.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/renderer/tiles/TilesRendererBase.js b/src/core/renderer/tiles/TilesRendererBase.js index 04061a37c..5db599628 100644 --- a/src/core/renderer/tiles/TilesRendererBase.js +++ b/src/core/renderer/tiles/TilesRendererBase.js @@ -428,14 +428,14 @@ export class TilesRendererBase { } - if (!this.isLoading && !runningTasks) { + if ( !this.isLoading && !runningTasks ) { this.framesSinceLastLoad++; // If we have gone 2 full frames with zero activity, we are truly settled (one to calculate visibility, one to process potential results). - if (this.framesSinceLastLoad === 2) { + if ( this.framesSinceLastLoad === 2 ) { - this.dispatchEvent({ type: 'tiles-settled' }); + this.dispatchEvent( { type: 'tiles-settled' } ); } From 88aac9bd54305dcfe7a67b073f702b8fb5e444fd Mon Sep 17 00:00:00 2001 From: Tobias Gassmann Date: Thu, 11 Dec 2025 08:36:45 +0100 Subject: [PATCH 3/5] clarify comment on frame waiting logic --- src/core/renderer/tiles/TilesRendererBase.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/renderer/tiles/TilesRendererBase.js b/src/core/renderer/tiles/TilesRendererBase.js index 5db599628..cd40b3478 100644 --- a/src/core/renderer/tiles/TilesRendererBase.js +++ b/src/core/renderer/tiles/TilesRendererBase.js @@ -432,7 +432,7 @@ export class TilesRendererBase { this.framesSinceLastLoad++; - // If we have gone 2 full frames with zero activity, we are truly settled (one to calculate visibility, one to process potential results). + // 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' } ); From 24989591d014b03b8a9332cdc7cc4b41a9f883dc Mon Sep 17 00:00:00 2001 From: Tobias Gassmann Date: Thu, 11 Dec 2025 08:46:09 +0100 Subject: [PATCH 4/5] Fix formatting and spacing in TilesRendererBase.js --- src/core/renderer/tiles/TilesRendererBase.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/core/renderer/tiles/TilesRendererBase.js b/src/core/renderer/tiles/TilesRendererBase.js index cd40b3478..471557e99 100644 --- a/src/core/renderer/tiles/TilesRendererBase.js +++ b/src/core/renderer/tiles/TilesRendererBase.js @@ -428,23 +428,23 @@ export class TilesRendererBase { } - if ( !this.isLoading && !runningTasks ) { + 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; - + } - + } From 3ada3f901ca6c83381fd7fae6f48fb4392a4e94a Mon Sep 17 00:00:00 2001 From: Tobias Gassmann Date: Thu, 11 Dec 2025 08:49:16 +0100 Subject: [PATCH 5/5] Fix increment operator formatting in TilesRendererBase.js --- src/core/renderer/tiles/TilesRendererBase.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/renderer/tiles/TilesRendererBase.js b/src/core/renderer/tiles/TilesRendererBase.js index 471557e99..eab68e0bc 100644 --- a/src/core/renderer/tiles/TilesRendererBase.js +++ b/src/core/renderer/tiles/TilesRendererBase.js @@ -430,7 +430,7 @@ export class TilesRendererBase { if ( ! this.isLoading && ! runningTasks ) { - this.framesSinceLastLoad++; + this.framesSinceLastLoad ++; // Wait for 2 frames to ensure the update loop has had a chance to queue new downloads. if ( this.framesSinceLastLoad === 2 ) {