✨ Features and improvements
- Improved support for drawing the letters of Devanagari, Khmer, Burmese and the other complex scripts and also draws Arabic and Hebrew labels correctly without loading a right-to-left text plugin, which deprecates
setRTLTextPluginandgetRTLTextPluginStatus(#8343) (by @HarelM) - Read sprite and image pixels back through an
OffscreenCanvaswhere available, removing a main-thread stall of tens of milliseconds on GPU-accelerated browsers when a sprite loads (#8339) (by @cherenkov) - Skip clipping masks for layers hidden at the current zoom and stop re-binding dynamic buffers on cached vertex array binds, removing redundant WebGL calls every frame (#8369) (by @johncarmack1984)
- Re-render at most one stale terrain drape per frame and keep drapes that differ only by zoom while the map moves, so a finger lift over terrain no longer re-renders every tile at once (#8368) (by @johncarmack1984)
🐞 Bug fixes
- Fix
setStyle()throwing while terrain is still loading because an intermediate render tried to compile a terrain shader before the replacement style initialized its projection (#6824) (by @miakh) - Fix queued GeoJSON
updateDataproperty removals throwing after geometry-only updates or retaining previously updated values (#8372) (by @jokrasno) - Treat camera options passed as
undefinedas not given injumpTo,easeToandflyTo; they were coerced to NaN (#8373) (by @vlumi) - Fix a
Not implemented.error that broke panning and zooming when the projection was changed while the camera was moving, on maps with terrain enabled or atransformCameraUpdatecallback (#8351) (by @lazerg) - Fix a map created inside a hidden container staying at the
400x300fallback size when the container is shown before the resize observer's first notification is delivered (#8277) (by @spliffone) - Fix
MercatorTransformthrowing when it is resized to a zero width, and skip the matrix calculation of every projection while the transform has a zero width or height (#8374) (by @avosa) - Fix every style update opening a redundant sky and light transition, which kept
idlefrom firing for the transition duration after the map was otherwise done, and could ease the sky and the light on a different curve from the layers (#8348) (by @cherenkov) - Fix DOM sanitization for iframe and srcdoc (#8396) (by @HarelM)