Commit Graph

3509 Commits

Author SHA1 Message Date
Vladimir Agafonkin
82de856c94 [core, ios, macos, android, node] Heatmap layer (#11046)
Co-Authored-By: Konstantin Käfer <mail@kkaefer.com>
Co-Authored-By: Anand Thakker <anandthakker@users.noreply.github.com>
Co-Authored-By: Minh Nguyễn <1ec5@users.noreply.github.com>
2018-02-15 17:38:23 +02:00
Ansis Brammanis
1fdec7a5c1 [core] fix opacity of duplicate labels with -allow-overlap: true 2018-02-15 09:36:29 -05:00
Molly Lloyd
8a283b0306 [core] add support for mapzen terrarium (#11154)
* add support for mapzen terrarium

* Encoding --> DEMEncoding, avoid if statement when unpacking elevation values

* add Terrarium test

* update submodule

* remove redundant checks
2018-02-14 13:17:55 -08:00
Molly Lloyd
a386cac452 [core] add maxzoom uniform for raster-dem tilesets (#11134)
* add maxzoom uniform to support external tilesets

* update git sha for gl-js

* try and fix android crash

* name default maxzoom constant
2018-02-14 11:28:51 -08:00
Chris Loer
a11b277bc1 [core] Rename "onLowMemory" to "reduceMemoryUse".
Android still calls "reduceMemoryUse" only while handling a low memory event.
iOS, on the other hand, calls "reduceMemoryUse" every time it enters the background.
2018-02-14 10:55:16 -08:00
Chris Loer
f721779963 [core] fix onLowMemory to release GL buffers
Context cleanup must be called _after_ render sources release tiles.
2018-02-14 10:55:16 -08:00
Asheem Mamoowala
aefc3daeed TileJSON Bounds allows values inclusive of world extents 2018-02-12 16:56:20 -08:00
Thiago Marcos P. Santos
fb65d25831 [core] Make RendererObserver a public interface
Needed by backends implementing asyncronous rendering
2018-02-09 20:28:54 +02:00
Asheem Mamoowala
6c5e457590 Add options for Custom Geometry Source types to enable clipping and wrapping geometry (#11041) 2018-02-07 12:07:31 -08:00
Molly Lloyd
e03f7a4d1f [core] align raster-dem tiles to pixel grid (#11119)
* align raster-dem tiles to pixel grid

* revert ignored hillshade tests
2018-02-06 10:56:42 -08:00
Chris Loer
d3deb6d71b [core] Don't crash on line labels with 0 glyphs.
Fixes issue #10956.
2018-02-06 09:12:21 -08:00
Chris Loer
14db958ae5 [core] Account for overscaling in debug collision circles.
Fixes issue #11116.
Port of GL JS issue $6041.
2018-02-06 08:46:15 -08:00
Asheem Mamoowala
671dfefc1e Reset tileset-based render sources when any tileset properties changed. (#11042) 2018-02-05 19:31:03 -05:00
Tobrun
e2a4dffcb6 [android] - blacklist adreno 2xx for VAO support 2018-01-31 12:58:22 +01:00
Konstantin Käfer
191c0124c7 [core] don't force downloading of Open Sans fonts
When a SymbolLayer doesn't have a text-font defined, we automatically add Open Sans/Arial Unicode MS. However, when the SymbolLayer is only used for rendering icons, it doesn't have text-field defined either. In those cases, we still force downloading Open Sans/Arial Unicode MS during offline pack creation. If the user doesn't use this font, this change should save ~15MB and a few seconds in download time.
2018-01-25 17:21:18 -08:00
Konstantin Käfer
c148a7a061 [core] align implementations of local and asset file source 2018-01-25 13:45:47 -08:00
Konstantin Käfer
fcc3808c83 [core] align raster imagery rendering to pixel rid to avoid blurriness 2018-01-24 17:02:18 -08:00
Minh Nguyễn
fb5b8d34f2 Reimplement style values atop NSExpression (#10726)
* [ios, macos] Import headers, not implementation files

* [core] Added accessors for various expression parameters

Added missing parameter accessors to various expression operator classes, as well as a method on InterpolatorBase and Step that enumerates the stops and their values.

* [ios, macos] Silenced warning in test of error condition

* [ios, macos] Made MGLSphericalPosition boxable

* [ios, macos] Implemented array enumeration during conversion

* [ios, macos] Temporarily ignore heatmap layer type

* [ios, macos] Migrated MGLSymbolStyleLayer.text to NSExpression

MGLSymbolStyleLayer.text is now of type NSExpression instead of MGLStyleValue, as a first step toward migrating the entire layer API from style values to expressions.

Implemented conversions from NSExpression to JSON arrays and vice versa. The most common NSExpression functions are now converted into style expressions, but not all of the most common style expression operators are supported yet.

* [ios, macos] Implemented string coercion

* [ios, macos] Color literals

* [ios, macos] Null constant expressions

* [ios, macos] Convert dictionary literals

* [ios, macos] Interpolation expressions

* [ios, macos] to-boolean, to-number, get from object

* [ios, macos] Variable expressions

Implemented custom expression functions for assigning and referring to variables within the context of an expression. Variables are assigned via a “context dictionary” and applied to an subexpression that is given as another argument to the same expression. Also implemented built-in variable expressions for zoom level and heatmap density.

* [ios, macos] Convert colors, offsets, padding in expressions to JSON objects

* [ios, macos] Expression-based style property getters

Implemented a conversion from mbgl::style::PropertyValues to Objective-C JSON objects, which are then converted to NSExpressions.

* [ios, macos] Consolidated property value–expression conversion in MGLStyleValueTransformer

* [ios, macos] Predicate and expression guide

Extracted documentation about predicates from a documentation comment in MGLVectorStyleLayer.h to a new jazzy guide. Added details about NSExpression support as well. Began updating the “For Style Authors” guide to reflect the transition from style values to expressions.

* [ios, macos] Updated style authoring guide

Updated the Information for Style Authors guide to discuss expressions instead of style functions. Included a table mapping style specification expression operators to NSExpression syntaxes.

* [ios, macos] Migrated codegen templates to expressions

* [ios, macos] Applied expression changes via codegen

Ran make darwin-style-code.

* [macos] Migrated macosapp to expressions

* [ios, macos] Updated style function guide

This guide needs to be thoroughly rewritten, but for now the example code has been migrated to expressions.

* [ios, macos] Eviscerated style function tests

* [ios, macos] Updated changelogs

* [ios] Migrated iosapp to expressions

* [ios, macos] Exposed JSON conversion methods publicly

* [ios, macos] Removed MGLStyleValue, MGLStyleFunction
2018-01-24 00:04:02 -08:00
Konstantin Käfer
d4ed8d1a44 [core] fix style parsing crash when a layer's paint property is not an object 2018-01-23 13:45:14 -08:00
Molly Lloyd
f3294200c6 [core] add raster-dem source type and hillshade layer type (#10642) 2018-01-23 10:49:23 -08:00
Chris Loer
b2e71abfee Prune unused layers from CrossTileSymbolIndex
Fixes issue #10939 -- removed layers would leak entries in the CrossTileSymbolIndex.
2018-01-19 14:50:42 -08:00
Chris Loer
fa57224791 [core] GeometryTileData needs to be updated in lockstep with FeatureIndex 2018-01-18 14:36:22 -08:00
Chris Loer
656a6373b9 [core] Synchronize state of CollisionIndex and FeatureIndexes.
Fixes issue #10778, in which mismatch between FeatureIndex and CollisionIndex could lead to inconsistent results or even invalid array access.
2018-01-18 14:36:22 -08:00
Chris Loer
b3d3ab0e31 [core] Prevent symbols at the same zoom from sharing a crossTileID.
Port of GL JS PR #5994.
Fixes issue #10844, which would allow multiple symbols in a tile to share the same crossTileID as one of their duplicate parent-tile symbols. Once the symbols shared a crossTileID, they would permanently remain "duplicates" of each other, even after increasing zoom level allowed the CrossTileSymbolIndex to distinguish between them.
2018-01-17 12:49:30 -08:00
Ansis Brammanis
6782d7af37 [core] fix symbol flickering after data updates 2018-01-11 14:07:00 -05:00
Ansis Brammanis
68159f8d01 [core] fix updating CrossTileSymbolIndex after bucket update
emplace does not overwite existing entries
2018-01-11 14:07:00 -05:00
John Firebaugh
542713fefe [core] Add warning for invalid text-font values 2018-01-10 15:31:12 -08:00
John Firebaugh
76ed5079a5 [core, ios, macos, android] Add data-driven-styling support for text-font 2018-01-10 15:31:12 -08:00
John Firebaugh
c9da6e4959 [core] Account for circle-stroke-width in queryRenderedFeatures 2018-01-10 14:22:44 -08:00
John Firebaugh
cedda5ef4f [core] Handle NaN input to interpolate and step 2018-01-10 13:45:00 -08:00
John Firebaugh
0eb4b5cc0e [core] Omit inferred type annotations for 'coalesce' arguments 2018-01-09 17:27:02 -08:00
John Firebaugh
e887cda986 [core] Fix alpha handling in rgba and to-rgba operators 2018-01-09 16:46:52 -08:00
John Firebaugh
a4ab4f68e2 [core] Enable implicit type assertions for array types 2018-01-09 16:13:26 -08:00
John Firebaugh
a13027c1b6 [core] Improve typing for !=, == expressions 2018-01-09 16:10:51 -08:00
Lauren Budorick
43a9bd3fba [core] Use separate shaders for background and clipping 2018-01-09 15:02:49 -08:00
Chris Loer
966606a107 [core] Update debug collision circle shader.
Fixes issue #10876.
2018-01-09 13:14:02 -08:00
Konstantin Käfer
145a0ee6d0 [core] blacklist binary program loading for Vivante GC4000 GPUs 2018-01-09 09:55:05 -08:00
Thiago Marcos P. Santos
fef095f785 [windows][core] Use Qt's own zlib on Windows 2018-01-08 22:58:20 +02:00
Thiago Marcos P. Santos
5b789aa4d6 [windows][core] Include what you use 2018-01-08 22:58:20 +02:00
Thiago Marcos P. Santos
f880baaeb7 [windows][qt] Remove std:: namespace of some functions
Not available on Windows.
2018-01-08 22:58:20 +02:00
Bruno de Oliveira Abinader
af183f3952 [ios] Ignore Boost's 'implicit conversion loses integer precision' warning 2018-01-08 22:58:20 +02:00
Ansis Brammanis
feab36a9fb [core] port minor collision changes from -js (#10764) 2018-01-08 12:57:03 -05:00
Asheem Mamoowala
10a44050f4 Support TileJSON bounds property (#10701)
* [core] Parse TileJSON bounds property
* [core] Add TileRange and LatLngBounds::contains(CanonicalTileID)
Move LatLngBounds::contains impl to cpp file
* [core] Skip tile creation outside of tileset bounds
* [core] Fix TileRange for wrapped bounds and use for CustomTileLoader instead of LatLngBounds comparisons for tiles.
2018-01-05 06:35:31 -08:00
Ansis Brammanis
aa158bb20c [core] fix #10833 loading overscaled tiles
This reverts a regression in ed5438fc21
which set `tileZoom = idealZoom` for all types of tiles.

The second change makes it so that panTiles get loaded only if they have
a lower *data zoom* (only if they cover a larger area).
2018-01-05 10:51:38 +02:00
Fabian Guerra
6fa57b7d48 Merge branch 'release-agua' back to master. 2018-01-04 17:13:55 -06:00
Chris Loer
5bfa20d71d Fix distant collision perspective ratios (#10794).
Analog of GL JS issue #5911.
Add native ignore for tilejson-bounds.
2018-01-04 14:24:37 -08:00
Fabian Guerra
187b6dc31c Merge branch 'release-agua' into master
# Conflicts:
#	circle.yml
#	cmake/core-files.cmake
#	platform/android/CHANGELOG.md
#	platform/android/MapboxGLAndroidSDK/build.gradle
#	platform/android/MapboxGLAndroidSDK/gradle.properties
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMapOptions.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/text/LocalGlyphRasterizer.java
#	platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/BitmapUtils.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/DebugModeActivity.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/LocalGlyphActivity.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTintActivity.java
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_local_glyph.xml
#	platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/descriptions.xml
#	platform/darwin/src/MGLMapSnapshotter.mm
#	platform/darwin/src/MGLRendererConfiguration.h
#	platform/ios/CHANGELOG.md
#	platform/ios/DEVELOPING.md
#	platform/ios/INSTALL.md
#	platform/ios/README.md
#	platform/ios/resources/bg.lproj/Localizable.strings
#	platform/ios/resources/es.lproj/Localizable.strings
#	platform/ios/resources/vi.lproj/Localizable.strings
#	platform/ios/src/MGLMapView.mm
#	platform/macos/macos.xcodeproj/project.pbxproj
#	src/mbgl/text/glyph_manager.cpp
2018-01-04 12:55:19 -06:00
Bruno de Oliveira Abinader
ed5438fc21 [core] Allow prefetching tiles for all source types 2018-01-03 16:58:54 +02:00
Konstantin Käfer
498dbf27b9 [core] don't tie Annotation geometries to Map maxzoom
Instead, geometry generation via GeoJSONVT is now bound to the hardcoded limit of the annotation tile source.
2018-01-02 20:17:15 +01:00
Konstantin Käfer
ac32b41493 [core] don't tie Annotation geometries to Map maxzoom
Instead, geometry generation via GeoJSONVT is now bound to the hardcoded limit of the annotation tile source.
2018-01-02 19:41:07 +01:00