Commit Graph

3621 Commits

Author SHA1 Message Date
Chris Loer
9ff5d34ef2 [core] Introduce "collator" expressions
Cross platform parsing and evaluation code.
2018-07-03 10:03:05 -07:00
Chris Loer
b9d3ecc990 [core] Introduce LanguageTag for parsing BCP 47 tags 2018-07-03 10:03:05 -07:00
Bobby Sudekum
4286d5869c Add pitch argument to cameraThatFits functions (#12213) 2018-07-02 16:30:18 -07:00
John Firebaugh
647959a853 [core] Add assertions to expression constructors 2018-06-29 15:38:11 -07:00
John Firebaugh
25ac89e018 [core] Remove stops-based *Function constructors 2018-06-29 15:38:11 -07:00
John Firebaugh
6dfe56510c [darwin] Replace use of *Stops with expressions DSL 2018-06-29 15:38:11 -07:00
John Firebaugh
542a4b4501 [core] Replace use of *Stops with expressions DSL 2018-06-29 15:38:11 -07:00
John Firebaugh
16a3f318a1 [core] A filter expression that errors should be treated as false, not true 2018-06-29 15:38:11 -07:00
Konstantin Käfer
ca5b36ba80 [core] fix crash when trying to parse legacy filters
Legacy filters aren't part of the style specification, but you can generate them by parsing a legacy filter in a stylesheet, and obtaining the parsed Filter and serializing it.
2018-06-29 12:14:51 -07:00
John Firebaugh
e323daf71f [core] InterpolateBase → Interpolate; Interpolate → InterpolateImpl 2018-06-28 10:00:40 -07:00
John Firebaugh
1dd35eface [core] Privatize Interpolate<T> 2018-06-28 10:00:40 -07:00
John Firebaugh
b2f6acca61 [core] Move non-polymorphic Interpolate methods to base 2018-06-28 10:00:40 -07:00
John Firebaugh
bc771ee02e [core] Split Interpolator into a separate file 2018-06-28 10:00:40 -07:00
John Firebaugh
5ecfed5b79 [core] Simplify parseInterpolate
* Merge type checking into match arms
* No need to use interpolator->match(...)
2018-06-27 16:13:33 -07:00
Zsolt Bölöny
bc6094eb55 [core] Fix GCC8's new -Wcatch-value warnings
Polymorphic types shouldn't be caught by value, as the warning message says. Catch them by constant reference instead.
2018-06-25 10:07:04 -07:00
Molly Lloyd
e1af62e87d [core] add raster-resampling property (#12176)
* update style-code for raster-resampling

* implement user-defined raster-resampling

* invert filter condition

* raster-resampling -> raster-resampling-mode for darwin language conventions
2018-06-21 14:37:17 -07:00
Lloyd Sheng
eb70b89849 [core] Measuring tiles requesting/parsing time using logging (#12152)
* Tile timing

* Refactor logging code

* Keep the scope of `messageStream` constrained

* Make log message more clear

* Fix crash issue if onlineResponse.data is null
2018-06-21 11:24:14 +08:00
Julian Rex
bdf2e1f5d4 [ios] Added check for -Wtautological-constant-compare prior to ignore. (#12177) 2018-06-19 22:55:45 -04:00
Molly Lloyd
325ad2f711 [core] port zero line-width fix from gl-js (#12175)
* port zero line-width fix from gl-js

* ignore transition test

* ignore feature-state tests
2018-06-19 13:46:12 -07:00
Thiago Marcos P. Santos
caecdc8482 [core] Use a getter for the BackendScope static variable
Fix a static variable initialization issue when dynamic loading
Mapbox GL Native.
2018-06-13 17:13:13 +03:00
Konstantin Käfer
2b2de05612 [core] allow logging error codes and formatting strings at the same time 2018-06-12 17:41:16 +02:00
Konstantin Käfer
1fbf3f2d48 [test] standardize on database file name and move I/O functions to util 2018-06-12 17:41:16 +02:00
Konstantin Käfer
9af5172f98 [core] fix undefined behavior in LineAtlas::addDash 2018-06-12 10:55:46 +02:00
Ansis Brammanis
58b6c42f5d [core] always commit placement to fix #11795
Since placements will be committed even if they do not need the full
fade duration to fade features in, we need the new `fadeStartTime` to
keep track of how long we still need to fade. This is important because
if we fade too long we will trigger another placement and never stop
rendering.
2018-06-07 13:40:17 -04:00
Anand Thakker
2da57bd157 [core] Fix crash due to mixing legacy filters and expressions (#12065)
* Fix crash due to mixing legacy filters and expressions

In some cases, (invalid) nested filters that used a mix of legacy filter
syntax and expression syntax caused a crash due to a failure to
propagate parsing errors from deeper within the filter expression.

These errors went undetected in part because these conversion functions
returned unique_ptr<Expression> values (or vectors thereof), using
{nullptr} to represent a parsing error, but the core expression classes
expect unique_ptr<Expression> that are never null.

This changes over to using expression::ParseResult (aka
optional<unique_ptr<Expression>>), to represent conversion failure
the same way we do in the rest of the expression system.

* Fix clang 3.8 / gcc 4.9 issue
2018-06-06 11:26:08 -04:00
Konstantin Käfer
3ef67a827e [core] fix bogus unused variable with GCC 7 2018-06-04 10:43:21 +02:00
Konstantin Käfer
d66251234d [core] don't use floating point versions of pow/log
GLIBC 2.27 added new versioned symbols of powf and logf, while the double versions of pow and log remained stable.
Prefer the double version to avoid introducing a dependency on a newer version of GLIBC than strictly necessary.
See https://lists.gnu.org/archive/html/info-gnu/2018-02/msg00000.html
2018-06-04 10:43:21 +02:00
Asheem Mamoowala
b1f696155e Set Tile loaded/rendered instead of marking tile as optional. 2018-05-24 14:01:21 -04:00
Konstantin Käfer
4067a61c80 [core] wrap glGetString in MBGL_CHECK_ERROR too 2018-05-24 11:19:59 +02:00
Ansis Brammanis
ba07c873aa [core] re-assign ids when lng jumps to avoid flicker 2018-05-22 14:58:11 -04:00
Ansis Brammanis
5e36f669ac [core] avoid symbol flickering when longitude is wrapped 2018-05-22 14:58:11 -04:00
Tobrun
60505b0317 [android] - remove mips and armeabi as supported ABIs
[android] - bump CI image to NDK 17 compatible

[core] - remove setting edgeDistance to 0, comparison 'const short' > 32767 is always false

[android] - remove throwing in desructor, undefined behaviour

[android] - bump dependency versions of project
2018-05-22 17:53:34 +02:00
Bruno de Oliveira Abinader
23a9d3b623 [core] Use std::ios::binary format in std::ifstream 2018-05-22 16:53:05 +03:00
Konstantin Käfer
94ec9e15d5 [core] fix hang when parsing very large angles for hue in hsl colors 2018-05-22 14:00:11 +02:00
Asheem Mamoowala
78fdf5c771 Clamp TileJSON.bounds latitudes to [-90, 90] (#11964)
Fixes #11963.
2018-05-21 14:59:54 -07:00
Julian Rex
bef2a7ccb6 [ios,macos] Fix for infinite loop crash when setting shape to nil in MGLMapViewDelegate methods (#11614) 2018-05-21 14:14:58 -04:00
John Firebaugh
a84ac4c8d7 [core] Align URL token replacement behavior with GL JS
I.e. preserve unknown tokens in URLs rather than replacing them with an empty string.
2018-05-18 17:19:45 -07:00
John Firebaugh
b2fabe5eef [core] Align match behavior with case/==
Makes `["match", ["get", k], label, match, otherwise]` equivalent to `["case", ["==", ["get", k], label], match, otherwise]`. This changes the behavior of match expressions where the runtime type of the input does not match the type of the labels: previously such expressions produced a runtime type error and then fell back to the property default value; now they produce the fallback value from the match expression.
2018-05-18 12:10:31 -07:00
Fabian Guerra
30376f3ce1 Merge branch 'release-boba' into master
# Conflicts:
#	mapbox-gl-js
#	platform/android/CHANGELOG.md
#	platform/android/MapboxGLAndroidSDK/gradle.properties
#	platform/android/gradle/dependencies.gradle
#	platform/darwin/src/MGLVectorTileSource.mm
#	platform/darwin/src/MGLVectorTileSource_Private.h
#	platform/ios/CHANGELOG.md
#	src/mbgl/style/expression/compound_expression.cpp
2018-05-17 11:47:31 -04:00
Lauren Budorick
d05fa404a8 Fix bug (always true + incorrect calculation) in fill_extrusion_bucket edgedistance check 2018-05-16 10:41:48 -07:00
Minh Nguyễn
4b1530ff42 [core] Convert null to empty string, not “null” 2018-05-14 13:24:42 -07:00
Thiago Marcos P. Santos
07ad29d30d [qt] Fix build when building the Qt Location plugin
- MinGW has to explicitly know that is building a static library.
- Android doesn't have 'round' on the std:: namespace when using g++.
2018-05-14 17:18:51 +03:00
Lucas Wojciechowski
a4e2c1af1f [core] Convert "legacy" filters directly into expressions (#11610)
Ports the specialized filter-* expressions from GL JS, adding them to src/mbgl/style/expression/compound_expression.cpp
2018-05-10 12:37:14 -07:00
Konstantin Käfer
c3346f473a [core] Don't crash when attribute count is exceeded 2018-05-03 16:31:43 -07:00
Chris Loer
27b21363e6 [core] Only run placement for first layer per SymbolBucket
Native version of mapbox/mapbox-gl-js#6548.
Port of mapbox/mapbox-gl-js#6550.
Prevents symbols that share the same layout properties from colliding against each other.

Bump GL JS pin to get regression test.
Rename "bucketName" -> "bucketLeaderID" to make it clearer what it represents.
2018-05-03 14:17:25 -07:00
Chris Loer
a96fe6ad87 [core] Don't copy TileLayerIndexes on every frame.
Fixes issue #11811 (too much CPU time spent in CrossTileSymbolIndex).
2018-05-02 09:42:03 -07:00
Chris Loer
a6d70c2db7 [core] Don't copy TileLayerIndexes on every frame.
Fixes issue #11811 (too much CPU time spent in CrossTileSymbolIndex).
2018-05-01 15:25:26 -07:00
Chris Loer
b820ca4686 [core] Remove unused 'Throttler' class.
Throttler was previously used to control how frequently background placement ran.
2018-04-30 17:08:09 -07:00
Chris Loer
65a4ee2373 [core] Port is-supported-script to native.
Native port is much simpler because RTL text support is always enabled.
2018-04-27 16:05:14 -07:00
Ansis Brammanis
0ca53ea5a8 [core] only index features within tile boundaries
Previously we relied on tile buffers for querying features who's
rendered representations cross tile boundaries. Now we query multiple
tiles making it unnecessary to index features that are completely
outside a tile's boundaries.
2018-04-26 18:03:17 -04:00