Releases: maplibre/maplibre-native
Releases · maplibre/maplibre-native
android-v11.5.0
Note
This release inadvertently includes a breaking API change with regards to icon padding. Please refer to the migration guide.
✨ Features and improvements
- Expose
RENDERMODE_CONTINUOUSLY
andRENDERMODE_WHEN_DIRTY
(#2801). Toggling this can be helpful for development (e.g. when testing and optimizing performance). - Compile for Android with support for 16 KB page sizes (#2852).
- Enable crash mitigation when running OpenGL in the Android emulator (#2858). Technically the crashes were caused by an issue with the Android Emulator, but we were able to find a workaround.
- Add array support for
icon-padding
(#2845).
More information can be found in the MapLibre Style Spec Documentation. This is the first (code) contribution from @random3940! 🎉 - Use
thread_local
for thread local scheduler (#2863).
🐞 Bug fixes
node-v6.0.1-pre.0
- Add
textFitWidth
andtextFitHeight
properties to sprites (#2780).
More information can be found in the MapLibre Style Spec.
ios-v6.6.0
- Add
textFitWidth
andtextFitHeight
properties to sprites (#2780).
More information can be found in the MapLibre Style Spec. - Toggle tile cache final API (#2723).
Using this API can reduce memory usage at the cost of having to parse tile data again when the zoom level changes. - Fixed annotation delay in demo app for 120Hz devices (#2775).
Some users reported synchronization issues when panning the map. The issue is only present on devices with ProMotion (120Hz) displays and can be fixed by updating the Info.plist for your app (see Apple documentation). - Use timestamps for attribute updates (#2629).
- Reuse prefetched tiles to avoid empty screen (#2668).
- Cleanup mbgl/actor/mailbox* implementation for repetition in ensuring valid weakScheduler exists before usage (#2733).
- Fix raster masking bug (#2798).
- Ensure that all depth values are rendered before any color values (#2811).
- Move UBO updates from render layers to tweakers (#2703).
- Fix update time not being set when only drawable indexes are set (#2743).
- Add guard blocks and checks to
SymbolInstance
(#2744). - Fix accidental regression conditional layer evaluation (#2705).
- Use C++20 (#2659).
android-v11.4.0
✨ Features and improvements
- Add
textFitWidth
andtextFitHeight
properties to sprites (#2780).
More information can be found in the MapLibre Style Spec. - Move UBO updates from render layers to tweakers (#2703).
- Improve tile lifecycle determinism (#2819).
- Make sure swapBehavior is NoFlush (#2827).
🐞 Bug fixes
- Ensure that all depth values are rendered before any color values (#2811).
android-v11.3.0-vulkan-pre0
Important
This build is not compatible with devices that only support OpenGL ES and is not intended for production use.
This pre-release has Vulkan support. Vulkan support for MapLibre Android is under active development.
We invite you to try it out and report any issues you encounter, either as a bug report or in the Vulkan Early Access Testing (Android) thread.
android-v11.3.0
✨ Features and improvements
- Added new map observer events:
onPreCompileShader
,onPostCompileShader
,onShaderCompileFailed
,onGlyphsLoaded
,onGlyphsError
,onGlyphsRequested
,onTileAction
,onSpriteLoaded
,onSpriteError
,onSpriteRequested
(#2694). - Correct and revise OpenGL texture pooling (#2709).
- Update Android dependencies (#2794).
- Make project compatible again with Java 11, based on feedback from @alasram (#2799).
🐞 Bug fixes
- Fix raster masking bug (#2798).
node-v6.0.0
- [Note] This is the first release that is back on the main branch.
- This is the first release that uses Metal for rendering for macOS. This is a graphics API from Apple that replaces OpenGL (ES) on Apple platforms.
- This is the first release that uses OpenGL (ES) 3.0 for Windows and Linux.
- macOS binary is now built on macOS 14.
node-v5.4.1
android-v11.2.0
Note
We now use Android SDK 34 as compileSdk
which means Java 17 is now required. The minimum SDK version is unchanged (21).
✨ Features and improvements
- Toggle tile cache final API (#2723).
This is a new API onMapLibreMap
:setTileCacheEnabled()
andgetTileCacheEnabled()
. This tile cache is used to cache tiles on different zoom levels, disabling it will reduce memory usage. - Add
getOfflineRegion
Kotlin API (#2516). This is the first (code) contribution from @JRWilding! 🎉 - Bump NDK version to 27.0.12077973, replace
ALooper_pollAll
withALooper_pollOnce
(#2663). - Remove OkHttp3 ProGuard rules (#2665).
- Use C++20 (#2659).
- Reuse prefetched tiles to avoid empty screen (#2668).
- Update Android Dependencies, use maplibre-gestures-android (#2714).
- Update dependency gradle to v8.10 (#2721).
- Cleanup
mbgl/actor/mailbox*
implementation for repetition in ensuring valid weakScheduler exists before usage (#2733). - Use latest MapLibre Style Spec (#2756).
This PR adds two new APIs toTransitionOptions
ofLocationIndicatorLayer
:getBearingTransition()
andsetBearingTransition()
. - Use timestamps for attribute updates (#2629).
🐞 Bug fixes
- Fix crash when feature contains invalid UTF-8 data (#2693).
- Fix accidental regression conditional layer evaluation (#2705).
- Ensure
ReentrantLock
is unlocked after being locked, and on same thread (#2759). This is the first (code) contributon from @westnordost! 🎉 - Add guard blocks and checks to
SymbolInstance
(#2744).
This fixes an exceedingly rare crash that a user is seeing in the field. The fix is not pretty, but we hope to better understand the problem in the future (see this open issue).