Commit Graph

372 Commits

Author SHA1 Message Date
Gali Nelle
209857f8ac Fix LocationIndicator Layer
This changes image size properties to be scales instead of pixel sizes.
The commit also adds fixes for handling image updates with the same ID,
adds tests for expressions in paint properties, as well as tests for using images
with pixel ratio greater than 1.
Finally it moves image-tilt-displacement and perspective-compensation properties
from layout to paint properties, and includes other minor cleanups.
2020-04-10 00:15:43 +03:00
Gali Nelle
cd91664935 Add unit tests for Rotation interpolator 2020-04-08 14:00:26 +03:00
Gali Nelle
8e581c88ea Make location indicator bearing a paint property
This change introduces a new property type, Rotation, that uses
a custom interpolator, and that is currently applied to
all style properties named "bearing", with a period attribute.
2020-04-08 14:00:26 +03:00
Gali Nelle
9a55c282fe Add LocationIndicatorLayer
New key is "G" in mbgl-glfw, cycling between no puck, centered
in the viewport and positioned in Tokyo.
2020-04-08 14:00:26 +03:00
Alexander Shalamov
15f73a06f2 [core] Add setMaxOverscaleFactorForParentTiles 2020-04-01 16:18:55 -04:00
Thiago Marcos P. Santos
94d1c10727 [core] Fix readability-* errors
As reported by clang-tidy-8.
2020-03-30 23:37:44 +03:00
Mikhail Pozdnyakov
20d960ed51 [core] Layer::setProperty() can set min/max zoom and filter 2020-03-24 20:53:55 +02:00
Mikhail Pozdnyakov
280b806777 [core] Move generic setProperty() parts to the base Layer class 2020-03-24 20:53:55 +02:00
Alexander Shalamov
71efb24e2d Bump mapbox-base to 1.2.0 2020-03-23 11:33:06 -04:00
Thiago Marcos P. Santos
d15b9c1f9c [core] Fix performance-unnecessary-value-param errors
As reported by clang-tidy-8.
2020-03-23 12:09:09 +02:00
zmiao
df79b05178 [core] Using TileCoordinates for geometry comparison 2020-03-19 14:40:49 +02:00
zmiao
aa0c9c267f [core] Fix within expression serialization + fix within expression equal operator 2020-03-05 20:53:16 +02:00
Alexander Shalamov
9ff1435aaa [core] Change GeoJSONOptions.clusterProperties to std::map
The clusterProperties contain only few elements at most.
2020-03-05 17:43:37 +02:00
Alexander Shalamov
02a1a31136 [core] Fix TransitionOptions serialization 2020-02-26 18:15:23 +02:00
Alexander Shalamov
e55a46e5d1 [core] Fix Color serialization 2020-02-26 18:15:23 +02:00
Alexander Shalamov
8785f77cd6 [core] Generate layer code 2020-02-26 18:15:23 +02:00
Alexander Shalamov
713299c429 [core] Add layer serialization method 2020-02-26 18:15:23 +02:00
zmiao
7cdb526dcc [core] Add bounding box overlapping check before line within polygon test 2020-02-21 21:39:48 +02:00
zmiao
b9425dd4ec [core] Remove unnecessary includes, fix comments
This reverts commit b5c386ad7708ca9fe14f219b0ffc94cf6ce8fc88.
2020-02-21 21:39:48 +02:00
zmiao
351f421080 [core] Update unti tests. Remove unnecessary debugging code 2020-02-21 21:39:48 +02:00
zmiao
0cc042434d [core] Add support for "line within polygon" 2020-02-21 21:39:48 +02:00
Kevin Li
02274e7601 [core] Implement 'in' expression. (#16162)
* Implement in.cpp

* Fix review comments.

* Add expression_equality test for 'in'

* Fix review comments.

* [core] Update changelog.

* [core] Update mapbox-gl-js

* [core] Ignore render-tests/debug/padding

* [core] Update baseline.
2020-02-15 17:36:57 +08:00
zmiao
759dfe8bf6 [core] Support [within expression] with layout property 2020-02-12 17:35:18 +02:00
zmiao
7fda6ecad3 reserve vecotr capacity, fix for points within polygon
Address review findings/nit
2020-02-12 12:24:05 +02:00
zmiao
2963afa010 Add support for expression test
Fix polygon within algorithm
Add Unit tests

Fix incorrect metrics folder for ios-render-test-runner job
2020-02-12 12:24:05 +02:00
zmiao
1bd2ccf239 Enable within expression with Filter
add canonical as pointer

fix review findings
2020-02-12 12:24:05 +02:00
zmiao
3e99c08ea6 Enable parse within expression
Add geometry type checker
2020-02-12 12:24:05 +02:00
Mikhail Pozdnyakov
3bd2d0e4d7 style::Style::getImage() returns optional<style::Image> 2020-02-11 14:34:46 +02:00
Mikhail Pozdnyakov
64e2bcdf43 [core] Loading images to style optimization
This change enables attaching images to the style with batches and
avoids massive re-allocations. Thus, it improves UI performance
especially at start-up time.
2020-02-11 14:34:46 +02:00
Alexander Shalamov
fce4129435 [core] Add runtime API for setting tile prefetch delta for Source
New setPrefetchZoomDelta(optional<uint8_t> delta) method allow overriding
default tile prefetch setting that is defined by the Map instance. The
method can be moved to generic style specification if found to be useful
for gl-js engine.
2020-02-11 10:40:30 +02:00
Thomas Moenicke
b64ed75444 [build] Adding a build flag to build without GL if needed (#16120)
* [build] Adding a build flag to build without GL if needed

* [build] Moving custom layer to mbgl/gl
2020-02-03 19:10:57 +02:00
Alexander Shalamov
0b727108c8 [core] Add getSharedExpression to property expression
New method can be used for aggregating property expressions from
multiple properties(layers) into single match / case expression.
2020-02-03 16:45:42 +03:00
Mikhail Pozdnyakov
61ab64906e GeoJSONSource is re-using the existing scheduler
Thus avoiding spawing new threads on `setGeoJSONData()` calls.
2020-01-24 14:15:37 +02:00
Konstantin Käfer
5a1e4c6b81 [core] implement stretchable icons for icon-text-fit 2020-01-15 15:02:11 +02:00
Konstantin Käfer
62b0f4cde2 [core] Add stretches and content to style::Image 2020-01-15 15:02:11 +02:00
Alexander Shalamov
879c44f661 [core] Modularize FileSource codebase (#15768)
* [core] Introduce FileSourceManager and use it for default platform impl

  - Add `FileSourceManager` interface that provides access to `FileSource`
    instances and means of registering / unregistering `FileSource` factories
  - Split `DefaultFileSource` into smaller parts
  - Add `DatabaseFileSource` interface and it's default implementation
  - Remove inter-dependencies between concrete `FileSource` classes

* [build] Add files to next build system

* [core] Add generic property setters / getters

* [core] Remove setOnlineStatus from OnlineFileSource interface

* [core] Hide threading implementation details from DatabaseFileSource interface

* [core] Make DB file source methods virtual

* [core] Add documentation for DatabaseFileSource and rename one method

* [core] Use simple callback instead of ActorRef

* [core] Remove ActorRef from OnlineFileSource public header

* [core] Add callback to FileSource::forward async API

* [core] Pass OfflineRegionDefinition by value

* [core] Update tests to use modular file sources

* [core] Update unit tests

* [core] Update unit tests after rebase

* [core] Backport low prio fix for cached requests

* [core] Backport pack database

* [core] Return removed factory from unRegisterFileSourceFactory

* [core] Rename shadowed args in onlinefilesource

* [core] Remove simple std::function callback aliases

* [core] Expose online file source property keys in public header file

* [test-runner] Add proxy file source test runner

* [cache] Update mbgl-cache utility to use new file source

* [metrics] Rebaseline binary size metrics

* [offline] Update offline utility

* [core] Update changelog
2020-01-13 10:57:23 +02:00
Andrew Hay Kurtz
da4eb01bc7 [core] Enable 'line-sort-key' and 'fill-sort-key' layout properties (#15839)
- Generate style code for 'line-sort-key' and 'symbol-sort-key'

- Add new layout properties to FillLayer::Impl, FillBucket, and FillLayerFactory

- Fix consistency of paint and layout properties type alias usage in FillBucket, LineBucket

- Add optional feature sorting to fill and line Layout creation

- Enable node render tests for fill-sort-key and line-sort-key

- Fix FillBucket test construction

- Prefer emplace_back to push_back for PatternFeature container

- Fix buggy static_cast for PatternFeature indices

- Maintain sort of features as they are created

- Switch pattern layout features container to list from vector for better insert performance

- Fix formatting expected by sanity check

- Use subclass PatternLayoutSorted to work around lack of template functions

- Fix to retain source order for features with equivalent sort keys during sorting

- [core] Fix clang-format

- [core] Address review comments

- [core] Pass inserting strategy class at compile time

- [core] Use sorted strategy only if sort key is defined in layout

- [core] Update style generator

- [core] Merge PatternLayout and PatternLayoutSorted classes

  - Use static methods for inserter strategies
  - Merge PatternLayout and PatternLayoutSorted classes
2019-12-17 14:25:19 +02:00
Mikhail Pozdnyakov
9901167936 [core] Add style::Layer(Impl) constructor 2019-12-13 15:34:06 +02:00
Mikhail Pozdnyakov
684000fc26 [core] Merge style::Layer::set{Layout,Paint}Property 2019-12-03 14:20:17 +02:00
Alexander Shalamov
a01ecc92a0 [core] Add image sections to format expression 2019-12-02 17:11:49 +02:00
Mikhail Pozdnyakov
3947d5fa98 [core] Retain thread pool in GeoJSONSource
Otherwise, the construction of the `Immutable<Source::Impl>` in background thread might never yeld.
2019-11-29 15:37:49 +02:00
Mikhail Pozdnyakov
6419cd0ab2 [core] Calculate GeoJSON tile geometries in a background thread
Call `mapbox::geojsonvt::GeoJSONVT::getTile()` in a background
thread, so that the rendering thread is not blocked.
2019-11-29 11:12:55 +02:00
Mikhail Pozdnyakov
cd4136ed4b [core][android][darwin] Fix GeoJSONOptions handling
- share the `GeoJSONOptions` instances using `Immutable<GeoJSONOptions>` - avoid extra copying
- fix wrapping of the `GeoJSONOptions` instances in supercluster map/reduce lambdas.
  Previously, local variables were wrapped by reference.
2019-11-29 09:53:28 +02:00
Alexander Shalamov
c6f3cc8b60 [core] Implement image expression (#15877)
* [core] Bump gl-js version
* [core] Implement image expression
* [core] Use new image expression
* [core] Coerce image expression to / from string
* [core] Serialize evaluated image
* [core] Pass available images to layout
* [core] Pass images to evaluation context
* [core] Set available flag value based on image availability
* [core] Allow image coercion to boolean to indicate image availability
* [core] Coalesce image expression
* [core] Add image expression to next build system
* [core] Align serialization format and evaluated type with gl-js
* [core] Add images to expression evaluation method
* [core] Add support for Image expression to expression test runner
* [core] Unskip image expression tests
* [core] Update unit tests
* [core] Use image expression in annotation manager
* [core] Add string to ImageExpression conversion
* [core] Add image expression to expression dsl
* [core] Convert tokens for implicitly created Image literal
* [core] Fix clang format
* [core] Split generated style code lines that are over 120 characters
* [core] Add unit test for image expression equality
* [core] Add image property expression evaluation unit test
* [core] Unskip image expression render test
* [core] Skip 'in' expression tests
* [core] Ignore fill-pattern/update-feature-state render test
* [core] Rename Image::serialize to Image::toValue
2019-11-11 18:20:01 +02:00
Mikhail Pozdnyakov
4afb4438eb [android] Convert GeoJSON features to tiles in background
Composing tiles from the GeoJSON features is an expensive
operation that might block UI thread on updating the `GeoJsonSource`
with the new data.

This change moves tile composing to the background thread and thus
unblocks the UI thread.
2019-10-31 10:24:55 +02:00
Mikhail Pozdnyakov
8c498cd36c [core] Introduce and apply GeoJSONData::create() API 2019-10-31 10:24:55 +02:00
Mikhail Pozdnyakov
d446b3382b [core] Enable move semantics for StyleProperty 2019-09-27 19:17:25 +03:00
Ander Conselvan de Oliveira
bb9b1ab624 [core] Return enum layer property values as string
The output of Layer::getProperty is a mapbox::base::Value which is
equivalent to JSON. When setting the value of an enum property via JSON
its value would be a string, so it would be natural to return a string
too.

Also, the numbers generated depend on the enum definition. They are not
part of the style spec.
2019-09-27 17:09:45 +03:00
Mikhail Pozdnyakov
d90b2bb6dc [core] Introduce Light::getProperty() 2019-09-27 13:08:53 +03:00
Mikhail Pozdnyakov
f3146e43cd [core] ValueFactory for expression::formatted, other improvements 2019-09-27 13:08:53 +03:00