Skip symbol re-placement when its inputs have not changed (#8208)
* Skip symbol re-placement when its inputs have not changed A repaint triggered by anything else (an animated style image, a custom layer) previously held the render loop open for fadeDuration while the placement recency machinery re-ran and confirmed nothing moved. Track the placement inputs (camera, collision settings, symbol buckets) and skip the stale/re-place cycle when none of them changed, so such a repaint costs a single frame and the map fires idle in between. * Add changelog entry * Add a test covering the placement input guard * Document how an animated style image schedules its frames * Track every placement input with a hash and a revision counter * Re-place symbols when new DEM tiles arrive * Re-place symbols when the terrain source is swapped * Simplify the placement guard and trim its comments and tests * Update src/style/style.ts * Assert on placement runs instead of internal placement state Split the table-driven cases into named tests, drop the one-line update helper, and give settle a tsdoc comment. * Extract the placement inputs into a documented method * Rename the placement input snapshot to a placement signature * Add Style#triggerSymbolPlacement for inputs the guard cannot see * Call the placement comparison value a key * Name the counter after the method that bumps it * Mark the placement key builder internal * Move the placement guard comments to tsdoc and split the terrain test * Combine the terrain data event placement tests into one * Extract the settled-placement check into a named variable * Drive the placement guard tests through the public Map API * Compare placement inputs via the last placement's own snapshot * Update index.md * Cover the non-matrix placement inputs with re-place tests * Prove symbol fading survives the placement guard end to end * Self code review * Add a symbol fade test * Update expected bundle sizes for the placement guard * Shorten the placement guard comments * Restore the original placement stale comment, note the new guard
L
Lucas Wojciechowski committed
2311d08211f6931e9a5bde4ae8d4550af47697f4
Parent: 0d49d14
Committed by GitHub <noreply@github.com>
on 8/25/2026, 8:12:43 PM