Commit Graph

356 Commits

Author SHA1 Message Date
Konstantin Käfer
9cb4ffd248 [core] prioritize Thread::pause() calls 2018-02-07 18:21:58 +01:00
Konstantin Käfer
1eb628327d [core] change RunLoop processing to check queue on every iteration 2018-02-07 18:21:58 +01:00
Konstantin Käfer
9b961fb6f9 [core] factor out RunLoop::wake() 2018-02-07 18:21:58 +01:00
Konstantin Käfer
97005ccdfa [core] use the RunLoop's schedule call directly
RunLoop already has a queue, and has the ability to schedule weak mailboxes, so we can remove the duplicate code.
2018-02-07 18:21:58 +01: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
John Firebaugh
76ed5079a5 [core, ios, macos, android] Add data-driven-styling support for text-font 2018-01-10 15:31:12 -08:00
Thiago Marcos P. Santos
d00e56ada0 [windows][core] Add std::tuple replacement for Windows
Windows STL + Clang can't build our IndexedTuple class.
2018-01-08 22:58:20 +02:00
Thiago Marcos P. Santos
af9bb97e47 [windows][core] Add missing != operator to Tileset 2018-01-08 22:58:20 +02: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
Asheem Mamoowala
5fb9fb1a3c [core] Support wrapped bounds in LatLngBounds::contains and LatLngBounds::intersect. 2017-12-07 09:53:36 -08:00
Asheem Mamoowala
3067b77c65 [core, ios, macos] Implement unique_any and remove linb::any 2017-11-22 13:56:38 -08:00
Thiago Marcos P. Santos
92608f5885 [core] Fix build on Android + GCC and Android + armeabi
Sadly we don't have bots for these two setups.
2017-11-12 13:17:57 -02:00
Anand Thakker
f648cfeef6 Implement Expressions (#9439)
Ports https://github.com/mapbox/mapbox-gl-js/pull/4777 (and its several follow-ups)
2017-11-08 12:34:02 -05:00
Thiago Marcos P. Santos
c65465c02e [gcc4.9] Keep compatibility with GCC + Android
Needed by Qt builds on Android.
2017-10-31 12:41:40 +02:00
Asheem Mamoowala
375f9f94b6 [core] Add LatLngBounds::contains(const LatLngBounds&) 2017-10-30 16:44:34 -07:00
John Firebaugh
4b2e1cddb4 Replace compile-time polymorphism with runtime polymorphism in the conversion system 2017-10-23 09:56:43 -07:00
Asheem Mamoowala
2366487275 [core] Add cameraForLatLngs() method with modified bearing 2017-10-09 11:42:37 -07:00
Bruno de Oliveira Abinader
cda418198f [core] Clear atlasImage rect for a removed pattern 2017-09-13 22:17:41 +03:00
Asheem Mamoowala
50fd917510 Fast tileCount with help from @mapbox/sphericalmercator module 2017-09-08 17:38:42 -07:00
Lauren Budorick
f8a53234ff [core] Remove debug::renderTree 2017-09-07 12:07:46 -07:00
Ivo van Dongen
6b9a1268a4 [core] enable Thread destruction from arbitrary threads 2017-08-30 17:18:37 +03:00
Ivo van Dongen
0bb97e2307 [core] make thread.hpp public 2017-08-30 17:18:37 +03:00
Asheem Mamoowala
d21f19686b Set Default MaxZoom to 22 2017-08-21 15:01:36 -07:00
Ivo van Dongen
1ff8b3a799 [core] make RunLoop::schedule public 2017-08-09 12:08:21 +03:00
John Firebaugh
822df3dd51 [core] Use separate attribute component for line normals
Broadcom GPUs don't cope well with using the least significant bit for this.
2017-08-08 18:06:44 -07:00
Thiago Marcos P. Santos
acd95c325a [core] Fix issues with the std:: namespace and old compilers
Specifically when building Android with GCC 4.9 (which Qt still does :-/)
2017-07-26 18:51:11 +03:00
Chris Loer
e8657becc5 [core] Update shaders.
Implements 'icon-pitch-alignment' (issue #9345)
Fixes issue #9456 (map-aligned point label regression)
2017-07-12 14:14:09 -07:00
Bruno de Oliveira Abinader
4014aa6721 [core] GCC 4.9 bracket initialization issues 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
2fae373fc9 [core] GCC 4.9 is unable to deduce ctors when using bracket init 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
6282b28b6f [core] Added MBGL_CONSTEXPR to satisfy GCC 4.9 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
3afbfa2de7 [core] GCC 4.9 shadow member warnings 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
f1ac757bd2 [core] GCC 4.9 does not fully support custom variable templates 2017-07-12 20:42:29 +03:00
Bruno de Oliveira Abinader
1aacc88f35 [core] GCC 4.9 does not allow using another member in a constexpr ctor 2017-07-12 20:42:29 +03:00
Thiago Marcos P. Santos
407fbc70b1 [core] Prefetch low resolution tiles 2017-07-07 14:28:52 +03:00
Thiago Marcos P. Santos
c3900e42d6 [core] Removed unused methods
No longer needed after refactoring ::setResourceTransform.
2017-06-26 16:32:21 +03:00
John Firebaugh
5a87291826 [core] Obey "transition" property from style and its default value 2017-06-15 07:43:51 -07:00
John Firebaugh
3270440f23 [core] Per-tile glyph/icon atlases 2017-06-13 10:18:43 -07:00
John Firebaugh
9dfc2d924d [core] Collection-level immutability
Introduce a second level of immutability, over each of the collections held by a style: sources, images, and layers. Tracking immutability at this level allows us to short-circuit significant portions of the RenderStyle update logic via a simple equality check, greatly improving performance.
2017-06-05 19:38:08 -07:00
John Firebaugh
095dc7b167 [core] Replace createRender{Source,Layer} with Render{Source,Layer}::create
* Eliminates the need for EnableImmutableFromThis
* Eliminates the dependency of {Source,Layer}::Impl on corresponding Render class (circular dependency)
2017-05-12 11:26:27 -07:00
John Firebaugh
c2a5894f2d [core] Immutable Impls 2017-05-12 11:26:27 -07:00
Bruno de Oliveira Abinader
870067360f [tidy] modernize-pass-by-value 2017-05-12 18:07:36 +03:00
Bruno de Oliveira Abinader
25b2250c32 [tidy] modernize-use-using 2017-05-12 18:07:36 +03:00
Bruno de Oliveira Abinader
6f993230f2 [core] Make deleted members public
warning: deleted member function should be public [modernize-use-equals-delete]
2017-05-12 18:07:36 +03:00
Asheem Mamoowala
5c52401d55 [core] Make Map.addImage tests pass (#8843)
Fix Node tests suite implementation to parse pixelRatio from style json
Premultiply images in the node binding before sending to mbgl core
2017-05-02 09:54:06 -07:00
Lauren Budorick
f6e79d7073 [core] Render fill-extrusion layers (#8431) 2017-04-27 15:56:55 -07:00
John Firebaugh
ddecdeca94 [core] Move ProjectedMeters to projection.hpp 2017-04-18 14:43:31 +03:00
Bruno de Oliveira Abinader
2f4d162deb [core] Tighten geo.hpp ctors 2017-04-14 12:33:13 -07:00
John Firebaugh
7b041b123c [core, darwin] Object identity for MGLSource*, MGLStyleLayer*
All `MGLSource` pointers referencing the same logical source will now be object identical; similarly for `MGLStyleLayer`.
2017-04-13 10:33:18 -07:00
John Firebaugh
62576e24a0 [core] Revert use of optional<EdgeInsets>, because EdgeInsets has a natural "empty" state 2017-04-11 14:50:22 -07:00
Bruno de Oliveira Abinader
bc7f6da135 [core] Added LatLngBounds::{valid,constrain} 2017-04-11 12:51:09 +03:00