Skip to content

Releases: tangrams/tangram-es

0.11.2

09 Dec 03:29
Compare
Choose a tag to compare

This is a minor update to the Tangram Android SDK and the Tangram iOS SDK. There are no breaking changes to the SDK interfaces in this release.

  • Migrate from android.support to androidx for Android support libraries (#2110 - thanks @rwrx!)
  • Upgrade Android build tools versions (#2110)
  • Fix JNI bugs that caused unexpected behavior or crashes on ARMv7 devices (#2116)

0.11.1

25 Nov 06:48
Compare
Choose a tag to compare

This is a minor update to the Tangram Android SDK and the Tangram iOS SDK. There are no breaking changes to the SDK interfaces in this release.

  • Fix iOS framework bundle identifier (#2106)
  • Fix outdated iOS framework documentation (9f51123)
  • Fix crash in input loop on Raspberry Pi (af64f4d)

0.11.0

21 Nov 22:28
Compare
Choose a tag to compare

This is a major update to the Tangram Android SDK and the Tangram iOS SDK. There are breaking changes to both SDK interfaces in this release.

Important: The Google Play Store has new requirements that all Android apps must include 64-bit binaries. This release updates the Tangram Android SDK to include all the required binaries. If you have an app on the Play Store that uses Tangram, you should upgrade to this release.

Android

  • Support drawing maps into a TextureView, for embedding within another View (#2030)
  • Fix JNI reference table overflow - Thanks @vilinet! (#2051)
  • Include all 64-bit binaries in AAR to comply with the Play Store's new requirements (#2066)
  • Better IO thread management, along with loading files asynchronously (#1947)

iOS

  • Expose TGMapView's CADisplayLink as a property, for controlling animation in certain situations (#1993)
  • Fix a bug where IosPlatform could be referenced after deletion in a UrlHandler block (#2021)
  • Workaround UIPinchGesture issue by checking number of touches (#2025)
  • Fix a parameter name that shadowed a property in TGMarker (#2059)
  • Tidy up several bits of iOS CMake/Xcode configuration (#2085, #2086, #2090)
  • Fix build errors and warnings in Xcode 11 (#2099)

Core

  • Organize files into CMake source_groups (#1989)
  • Fix view constraint logic to prevent inconsistent view states (#1998)
  • Refactor Platform resource handling to improve memory safety (#2003, #2009)
  • Cleanup some code in GLFW demo app (#1990)
  • Improved raster tile caching and code cleanup (#1991)
  • Support floating point label priorities (tilezen/vector-datasource#988, #2010)
  • Document Tangram ES inclusion in the Linux Foundation (#1816)
  • flyTo functions support an explicit speed parameter (#2018)
  • Linux networking updated to use curl multi API (#1994)
  • Refactor Platform code to avoid calling network callbacks during shutdown (#1947)
  • JavaScript engine abstraction, allows using either Duktape or JSCore on macOS and iOS (#1942)
  • Fix scene importing when duplicate, non-cyclic scenes are imported (#2016)
  • Support "zoom_offset" for tile data sources (#2026)
  • Revise "text_source" property behavior to match Tangram JS (#2027)
  • Breaking change: Cleaner, more robust implementation of scene updates (#2006)
  • Small improvements in texture and shader source management (#2000, #2047)
  • Breaking change: New, much faster interface for adding large data overlays (#2043)
  • LngLat equality check is now const - Thanks @Hsilgos! (#2063)
  • Use CMake find_package for curl dependency on Linux platforms (#2094)
  • Fix compilation issues on Debian GCC (#2072)
  • Fix stack value usage outside of its scope - Thanks @Hsilgos! (#2073)
  • Fix compilation issues with gcc 7.4 (#2092)
  • Fix build errors for tests and benchmarks on macOS (#2095)
  • Publish test results on CI (#2093)
  • Fix Raspberry Pi build errors (#2098)

0.10.1

19 Dec 01:38
Compare
Choose a tag to compare

This is a minor update to the Tangram Android SDK and the Tangram iOS SDK. There are no breaking changes to the SDK interfaces in this release.

Android

  • Update build dependencies and tools (#1963, #1984)
  • Fixed a potential null pointer exception in MapView$onTouchEvent (#1974)
  • Applied display density correctly to Marker Bitmaps - thanks @polar! (#1976, #1981)

iOS

  • Updated iOS docs, now hosted with the Tangram styling docs on https://tangrams.readthedocs.io
  • You can now choose between Duktape and JavaScriptCore for the JavaScript runtime implementation with the TANGRAM_USE_JSCORE CMake option. Duktape is generally faster, but using the JavaScriptCore provided with iOS reduces binary size by about 700KB per architecture. By default, Tangram will continue to use Duktape. (#1942)
  • Fixed a potential crash caused by dereferencing a pointer that wasn't checked for nullity. - thanks @Developers-Here-Mobility! (#1972)
  • Fixed an issue where multiple map instances could create or destroy resources in the wrong GL context. (#1986)

Other Features

  • Reduced unnecessary data copies to improve map startup speed (#1952)
  • Optimized and refactored image loading code (#1943)
  • You can now choose to omit the MBTiles feature at build time with the TANGRAM_MBTILES_DATASOURCE CMake option. On Android this reduces library binary size by 2-4MB per architecture. By default, Tangram will continue to include MBTiles. (#1955)
  • Fixed getEnclosingCameraPosition for cases when input bounds are very, very small - thanks @westnordost! (#1964)
  • Improved map launch speed by optimizing shader source processing. (#1978, #1987)

Fixes

  • Assorted fixes and cleanups. (#1971)
  • Tiles are no longer loaded for tile sources that aren't used in any scene layers - thanks @polar! (#1975)
  • Fixed a potential crash in TextStyleBuilder. (#1969)
  • Fixed a divide-by-zero for map animations with zero duration. (#1983)
  • Fixed paths in benchmark scripts. (#1985)
  • Fixed a compile error on Linux with certain FontConfig versions - thanks @Lecrapouille! (#1988)

0.10.0

29 Nov 23:30
Compare
Choose a tag to compare

This is a major update to the Tangram Android SDK and the Tangram iOS SDK. There are breaking changes to both SDK interfaces in this release.

It's been a while since our last release! The Android and iOS SDKs have grown up a lot since the previous release. We're not quite ready to call it 1.0 yet, but it's definitely getting close.

Android

  • Breaking change: Refactored HTTP handling to use the HttpHandler interface, with a default OkHTTP implementation DefaultHttpHandler. (#1848, #1849)
  • Breaking change: Refactored map position interface. Create a CameraUpdate with CameraUpdateFactory and apply it to the MapController to change the map position. This enables complex movements like centering on a bounded area and allows you to save and re-use updates (it also more closely resembles the Google Maps SDK so porting should be a bit easier!). (#1819, #1851, #1858, #1906)
  • Breaking change: Refactored gesture configuration interface. Gestures are now configured through a TouchInput instance associated with the MapController. This allows configuring which gesture types are enabled and which can be recognized simultaneously. (#1856, #1870)
  • Breaking change: MapController is instantiated asynchronously to prevent delays on the UI thread. Also helps avoid calling native library load calls on the main thread. (#1862, #1878)
  • Added event callbacks for map changes. (#1852, #1883, #1924)
  • Fixed some objects being retained in memory longer than expected. (#1872)
  • Fixed a potential exception when getMapAsync is called multiple times in an Activity. (#1873)
  • Fixed some object lifetime errors in URL callbacks. (#1880, #1881)
  • Fixed font file loading on some devices. (#1879)
  • Enabled using MapController subclasses with MapView. (#1892, #1895)
  • Pending URL requests are now cancelled when the map is disposed. (#1899)
  • Added fallback EGL configurations for devices that don't support our desired options. (#1912)
  • Moved Bitmap data conversions in to native code. (#1907)
  • Introduced GLViewHolder abstraction to enabled rendering to targets besides GLSurfaceView. (#1913)
  • Snapshot and release builds now use NDK r17b. (#1916)

iOS

  • Breaking change: TGMapViewController has been replaced by TGMapView, a UIView whose behavior can be customized with delegates. (#1835, #1842)
  • Breaking change: TGHttpHandler class has been replaced by the TGUrlHandler protocol. (#1839)
  • Provided delegate events for map change events. (#1847, #1883, #1924)
  • Breaking change: Refactored map position interface. Create and apply a TGCameraPosition to move the map. This enables complex movements like centering on a bounded area (it also more closely resembles the MapKit SDK so porting should be a bit easier!). (#1853, #1857).
  • Breaking change: Replaced custom location types with CoreLocation types. (#1863)
  • Fixed autoresizing mask not being correctly applied to inner GLKView. (#1891)
  • Demo app now retrieves Nextzen API key from user environment at build time. (#1890)
  • Pending URL requests are now cancelled after the map is disposed. (#1902)
  • Tweaked gesture recognizer behavior to more closely match MapKit behavior. (#1905)
  • Map rendering now gets a default background color from the backgroundColor property of the UIView. (#1921)

Other Features

  • Added configurable zoom limits for all platform SDKs. (#1854)
  • Added a wireframe rendering mode in the desktop app for debugging. (#1871 - thanks @cleeus!)
  • Enabled zoom stops for scene background color. (#1885 - thanks @polar!)
  • Added an extensible Imgui window for the desktop demo app. (#1915)
  • Enabled use of a limited set of ECMAScript 6 features in embedded JS functions, thanks to Duktape 2.3. (#1949)

Fixes

  • Fixed some build issues with shader processing scripts. (#1844 - thanks @polar! #1845, #1846)
  • Fixed error reporting for iOS builds. (#1861, #1859)
  • Converting a LngLat that is outside the viewport to a screen position now returns a screen coordinate rather than NaN coordinates. (#1855)
  • Simplified antimeridian wrapping for better performance and memory use. (#1860)
  • Fixed a possible crash when reading an invalid scene YAML file. (#1866 - thanks @polar!)
  • Fixed some POSIX compatibility issues. (#1876 - thanks @bentley!)
  • Fixed some unnecessary copy operations in URL loading. (#1877)
  • Fixed and simplified some YAML data type conversions. (#1874)
  • Fixed some memory allocations being retained longer than expected. (#1887)
  • Fixed an issue that could cause screen position to LngLat conversions to use out-of-date matrices. (#1898)
  • Improved CI build speed for iOS jobs. (#1904)
  • Continuous rendering now pauses automatically if no animated style is currently being drawn and the scene is not explicitly animated. (#1901, #1918)
  • Fixed some inefficient parsing of configuration from YAML. (#1894)
  • Fixed some intermittent CI out-of-memory failures. (#1917, #1920)
  • Fixed raster tile requests not being cancelled correctly. (#1928)
  • Fixed "proxy" tile requests not being cancelled correctly. (#1929).
  • Improved font loading speed on Linux. (#1934)
  • View complete event is now only triggered on the first complete frame after a change, not on every complete frame. (#1937)
  • Lots of miscellaneous clean-ups! (#1945)

0.9.6

17 Jul 23:58
Compare
Choose a tag to compare

This is a minor update to the Tangram Android SDK and the Tangram iOS SDK. There are no breaking changes to the SDK interfaces in this release.

Features

  • Added a flyTo method to animate position and zoom smoothly over large distances (#1808)

Fixes

  • Fixed handling of 'angle' draw parameters evaluated from JS functions (#1826)
  • Fixed parsing of certain 'size' values in scene files (#1836)
  • Prevented creation of extra polygon faces for extruded polygons crossing tiles (#1820)
  • Fixed extrusion errors for certain marker geometries (#1776, thanks @cleeus!)

Android

  • Improved nullability annotations and runtime checks (#1813, thanks @Dean79000!)
  • Updated target API version to 27 and updated OkHTTP to version 3.10 (#1814, thanks @Dean79000!)
  • Enabled choosing which ABIs to build using a Gradle property (#1815)
  • Increased minimum Android API target to 16 (#1825)

iOS

  • Improved workflow for tangram-es developers! The TangramMap framework can now be edited, built, and debugged from an Xcode Workspace along with the demo application. See the iOS README for details (#1827)
  • Enabled building a static library for integration with apps that prefer or require static linking (#1829)
  • The framework and static library now hide all symbols except those explicitly exported by the public API. (#1829).

0.9.3

23 May 20:09
Compare
Choose a tag to compare

This is a minor update to the Tangram Android SDK and the Tangram iOS SDK. There are no breaking changes to the SDK interfaces in this release.

Features

  • All continuous integration builds now run on CircleCI (#1793).
  • Enable sizing point features with % and auto (#1788).

Fixes

  • Building tests is fixed on macOS (#1791).
  • Point type now uses less memory (#1798).
  • Thread sanitizer issues have been fixed (#1795).
  • GL resource management is more robust (#1801, #1809).

Android

  • Fixed an unnecessary call to a font loading function (#1807, thanks @m-sasha!)

iOS

  • Fixed shouldRecognizeShoveGesture by correcting a typo (#1804, thanks @placz!)

macOS

  • Replaced a deprecated enum with newer value (#1810).

0.9.2

13 Apr 19:54
Compare
Choose a tag to compare

This is a minor update to the Tangram Android SDK and the Tangram iOS SDK. There are no breaking changes to the SDK interfaces in this release.

❗️IMPORTANT: Android releases are now hosted on jcenter: https://bintray.com/tangrams/maven/tangram To use this release or future releases with your Android project, make sure that your project's build.gradle file includes jcenter():

allprojects {
  dependencies {
    repositories {
      jcenter()
    }
  }
}

The dependency declaration in your app module will be the same as before:

dependencies {
  compile 'com.mapzen.tangram:tangram:0.9.2'
}

Features

  • Linux desktop apps can load system fonts for text rendering (#1707).
  • Sprite atlases can now define a density to describe their intended display size (#1742, #1786).
  • The Android README now has a version badge (#1755 thanks @dgngulcan!).
  • Demos now use tiles and cartography from nextzen.org. RIP Mapzen ❤️ (#1781).

Fixes

  • macOS desktop apps can load system UI fonts for text rendering (#1744).
  • Handling of null style parameters is more consistent with Tangram JS (#1747).
  • Values for the shader uniform u_pixels_per_meter are now more consistent with Tangram JS (#1748).
  • A possible use-after-free crash has been fixed (#1749).
  • Issues detected by the clang static analyzer have been fixed (#1750).
  • max_tilt is now correctly applied to flat and isometric cameras (#1760).
  • A test that failed on 32-bit Ubuntu was fixed by adjusting numeric precision (#1762 thanks @dastmetz!).
  • add and multiply blend modes now behave more consistently with Tangram JS (#1769).
  • Markers with flat: true use correct texture interpolation (#1768).
  • An build error on GCC 7.3 has been fixed with additional compiler directives (#1780).

Android

  • Android builds now use version 3.0 of the Android Gradle plugin and Android Studio (#1733).
  • Most interfaces now use nullability annotations to clarify usage (#1774 thanks @Dean79000!).

iOS

  • TGMarker has better handling of images with transparency (#1784).

0.9.0

01 Dec 00:31
Compare
Choose a tag to compare

This is a major update to the Tangram Android SDK and the Tangram iOS SDK. There are breaking changes to both SDK interfaces in this release.

Features

  • Textures can now be assigned to individual draw rules, not just styles (#1665).
  • URLs throughout the library interfaces and in scene files are handled more consistently and in compliance with relevant IETF standards (#1659).
  • Draw rules using the point style without a texture can now specify an outline (#1702).

Fixes

  • Unit tests can now be run on macOS (#1686).
  • Colors returned from JS functions as arrays now put the array values into the correct color channels (#1689).
  • Fixed a potential access of uninitialized memory in the Map implementation (#1710, thanks @cleeus!).
  • Calls to synchronous scene loading methods now block until any unfinished asynchronous scene loads complete, preventing unexpected loading behavior in some situations (#1722).
  • On Linux and Raspberry Pi, HTTP network requests now follow up to 20 redirects (36e7633 and 7865a3a).
  • Fixed a potential crash when performing an asynchronous scene update while an asynchronous scene load is in progress (#1705).
  • Fixed an issue where data sources could fail to refresh after a call to requestRender() (#1738).
  • Fixed some robustness issues reported by a static code analyzer (#1737).

Android

  • Published Android AARs no longer include binaries for armeabi architecture. armeabi-v7a, arm64-v8a, and x86 architectures are still included (#1664, #1739).
  • Android demo application no longer requires an API Key to compile (#1687).
  • Breaking change: Methods for starting and cancelling URL requests now return and accept a handle that uniquely identifies the request.

iOS

  • Published iOS frameworks no longer include binaries for armv7s or i386 architectures. armv7, arm64 and x86_64 architectures are still included (#1675).
  • Building the iOS framework from source now requires Xcode 9 (#1676).
  • loadSceneFromYaml in TGMapViewController no longer starts an asynchronous task (#1700).
  • Added support for a new Urdu font added in iOS 11 (#1685).
  • Fixed memory leaks in TGMapViewController (#1701).
  • TGMapViewController now supports applications operating in background mode (#1716).
  • The iOS framework now has 100% documentation coverage (#1726).
  • Breaking change: Methods for starting and cancelling URL requests now return and accept a handle that uniquely identifies the request.
  • Making any scene load call on TGMapViewController before viewDidLoad will now result in an error (#1741).

0.9.0-beta1

18 Nov 03:29
Compare
Choose a tag to compare
0.9.0-beta1 Pre-release
Pre-release

This is a major update to the Tangram Android SDK and the Tangram iOS SDK. There are breaking changes to both SDK interfaces in this release.

Features

  • Textures can now be assigned to individual draw rules, not just styles (#1665).
  • URLs throughout the library interfaces and in scene files are handled more consistently and in compliance with relevant IETF standards (#1659).
  • Draw rules using the point style without a texture can now specify an outline (#1702).

Fixes

  • Unit tests can now be run on macOS (#1686).
  • Colors returned from JS functions as arrays now put the array values into the correct color channels (#1689).
  • Fixed a potential access of uninitialized memory in the Map implementation (#1710, thanks @cleeus!).
  • Calls to synchronous scene loading methods now block until any unfinished asynchronous scene loads complete, preventing unexpected loading behavior in some situations (#1722).
  • On Linux and Raspberry Pi, HTTP network requests now follow up to 20 redirects (36e7633 and 7865a3a).
  • Fixed a potential crash when performing an asynchronous scene update while an asynchronous scene load is in progress (#1705).

Android

  • Published Android AARs no longer include binaries for armeabi or arm64-v8a architectures. armeabi-v7a and x86 architectures are still included (#1664).
  • Android demo application no longer requires an API Key to compile (#1687).
  • Breaking change: Methods for starting and cancelling URL requests now return and accept a handle that uniquely identifies the request.

iOS

  • Published iOS frameworks no longer include binaries for armv7s or i386 architectures. armv7, arm64 and x86_64 architectures are still included (#1675).
  • Building the iOS framework from source now requires Xcode 9 (#1676).
  • loadSceneFromYaml in TGMapViewController no longer starts an asynchronous task (#1700).
  • Added support for a new Urdu font added in iOS 11 (#1685).
  • Fixed memory leaks in TGMapViewController (#1701).
  • TGMapViewController now supports applications operating in background mode (#1716).
  • The iOS framework now has 100% documentation coverage (#1726).
  • Breaking change: Methods for starting and cancelling URL requests now return and accept a handle that uniquely identifies the request.