summaryrefslogtreecommitdiff
path: root/include/mbgl
Commit message (Collapse)AuthorAgeFilesLines
* [core] Tweak conversions to reduce binary sizeJohn Firebaugh2018-07-306-126/+29
| | | | | * return {} → return nullopt * error = { "..." } → error.message = "..."
* [core] Simplify CompoundExpression implementationJohn Firebaugh2018-07-302-102/+21
|
* Fix compilation errors with libc++ on QNX 7Sudarsana Babu Nagineni2018-07-301-1/+4
| | | | | | | | | | This patch fixes the compilation errors on QNX 7: 1) QNX 7 compiler (i.e qcc based GCC 5.4.0 with libc++ from LLVM) has a limited c++11 feature support and causing the compilation errors with the inheriting constructors. This fixes the issues by providing the required constructors explicitly. 2) Resolves an ambiguous overload error with optional<T>
* [core] Replace expressions RTTI with enums + static castBruno de Oliveira Abinader2018-07-2415-27/+68
|
* [core] Add `symbol-placement: line-center`Chris Loer2018-07-231-1/+2
| | | | | - Remove unused/vestigial 'maxCameraDistance' - Create a single collision circle for line labels that are less than half the width of a collision circle
* Keep original input for filters using legacy syntax.Asheem Mamoowala2018-07-231-3/+17
|
* [core] Convert token strings to expressionsJohn Firebaugh2018-07-207-29/+41
|
* [core] Replace {Source,Camera,Composite}Function with PropertyExpressionJohn Firebaugh2018-07-2011-293/+164
|
* [core] Convert legacy functions directly to expressionsJohn Firebaugh2018-07-1312-966/+64
|
* [core] Simplify Value conversionsJohn Firebaugh2018-07-121-41/+23
| | | | | | Use a single template function for each of {to,from}ExpressionValue, always dispatching to ValueConverter. Remove unused ValueConverter::ExpressionType typedefs.
* [core] Harden Projection::project()Bruno de Oliveira Abinader2018-07-091-1/+2
|
* Rename `HeatmapColorPropertyValue` to `ColorRampPropertyValue`Mikhail Pozdnyakov2018-07-054-23/+23
| | | | | | | | Based on patch from @lbud (Lauren Budorick). Give `HeatmapColorPropertyValue` a more generic name, since the same value type will be used for both `heatmap-color` and `line-gradient` properties.
* [core] Avoid blocking in Thread<Object> constructor (#12151)Anand Thakker2018-07-036-70/+212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Introduce AspiringActor, EstablishedActor This pair of objects represents the two-phase (parent-thread / child-thread) construction that's needed to support constructing Thread<Object> without blocking until the child thread is up and running. An `AspiringActor<O>` is responsible for: - ownership of the actor's `Mailbox` - allocating the memory for (but *not* constructing) the target object `O` Using these two pieces--the mailbox and a stable address for `O`--an `AspiringActor<O>` can accept messages for the target object, or provide `ActorRef<O>`s that do so, before the object has actually been constructed by the corresponding `EstablishedActor<O>`. (Such messages are queued in the mailbox until after the object is constructed.) This allows for an `AspiringActor<O>` to be created and safely used by a thread other than the one on which the target object will (eventually) live. An `EstablishedActor<O>` is responsible for managing the lifetime of the target object `O` and the open/closed state of the parent's `mailbox`. The `O` object's lifetime is contained by that of its owning `EstablishedActor<O>`: the `EstablishedActor` constructor executes the `O` constructor via "placement new", constructing it at the address provided by the parent `AspiringActor`, and the `~EstablishedActor` destructor similarly executes the `~O` destructor (after closing the mailbox). `EstablishedActor` should therefore live entirely on the thread intended to own `O`. * Remove Actor#{invoke,ask}
* [core] Introduce "collator" expressionsChris Loer2018-07-035-1/+86
| | | | Cross platform parsing and evaluation code.
* Add pitch argument to cameraThatFits functions (#12213)Bobby Sudekum2018-07-021-3/+3
|
* [core] Add assertions to expression constructorsJohn Firebaugh2018-06-293-20/+7
|
* [core] Remove stops-based *Function constructorsJohn Firebaugh2018-06-295-155/+81
|
* [darwin] Replace use of *Stops with expressions DSLJohn Firebaugh2018-06-291-0/+7
|
* [core] Replace use of *Stops with expressions DSLJohn Firebaugh2018-06-295-20/+68
|
* [core] InterpolateBase → Interpolate; Interpolate → InterpolateImplJohn Firebaugh2018-06-284-9/+9
|
* [core] Privatize Interpolate<T>John Firebaugh2018-06-282-102/+30
|
* [core] Move non-polymorphic Interpolate methods to baseJohn Firebaugh2018-06-281-17/+16
|
* [core] Split Interpolator into a separate fileJohn Firebaugh2018-06-283-43/+52
|
* [core] Fix issues in unique_anyJohn Firebaugh2018-06-251-10/+6
| | | | | | | * Eliminate unnecessary temporary in VTableStack::move, which also fixes calling the destructor on the incorrect instance * Make move consistent: it destructs the src, not the dest, which is always empty * delete doesn't need a null guard * Conversions to void* don't need a cast
* [core] add raster-resampling property (#12176)upstream/rcleeMolly Lloyd2018-06-212-0/+11
| | | | | | | | | | * update style-code for raster-resampling * implement user-defined raster-resampling * invert filter condition * raster-resampling -> raster-resampling-mode for darwin language conventions
* [core] Measuring tiles requesting/parsing time using logging (#12152)Lloyd Sheng2018-06-211-0/+1
| | | | | | | | | | | | * Tile timing * Refactor logging code * Keep the scope of `messageStream` constrained * Make log message more clear * Fix crash issue if onlineResponse.data is null
* [core] allow logging error codes and formatting strings at the same timeKonstantin Käfer2018-06-121-2/+2
|
* [core] don't use floating point versions of pow/logKonstantin Käfer2018-06-042-14/+1
| | | | | | 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
* Accept constant expressions in non-dds properties (#11960)Anand Thakker2018-05-231-3/+11
| | | Closes #11940
* [core] re-assign ids when lng jumps to avoid flickerAnsis Brammanis2018-05-221-2/+7
|
* [core] avoid symbol flickering when longitude is wrappedAnsis Brammanis2018-05-221-3/+8
|
* Merge branch 'release-boba' into masterupstream/fabian-merge-release-4.0.1-masterFabian Guerra2018-05-174-315/+34
|\ | | | | | | | | | | | | | | | | | | | | | | # 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
| * [core] Convert "legacy" filters directly into expressions (#11610)Lucas Wojciechowski2018-05-104-315/+34
| | | | | | Ports the specialized filter-* expressions from GL JS, adding them to src/mbgl/style/expression/compound_expression.cpp
* | [core] Streaming TileCover for polygonal regions (#11267)Asheem Mamoowala2018-04-261-12/+4
|/ | | A per-tile streaming algorithm for tile cover on points, lines, and polygons. Works for individual zoom levels, and not zoom ranges.
* Don't enforce ["zoom"] constraints for filters (#11672)Anand Thakker2018-04-125-59/+44
| | | | | | | | | | | | * Don't enforce ["zoom"] constraints for filters Fixes #11594 * Add a couple of comments * Fix ambiguous constructor call * ParsingContext(optional<Type>) => ParsingContext(Type)
* Fix style parsing bug for constant expressions (#11606)Anand Thakker2018-04-092-2/+3
| | | | | | | | | | | | | | * Fix style parsing bug for constant expressions Closes #10849 * Ignore tests for unported GL JS change Refs https://github.com/mapbox/mapbox-gl-js/pull/6429 * Fuller fix * Update mapbox-gl-js
* [core] Add Projection matrix to CustomLayerRenderParameters to transform web ↵Asheem Mamoowala2018-04-051-0/+3
| | | | mercator world coordinates to GL coordinates.
* Use a host interface for CustomLayer instead of function pointers (#11553)Asheem Mamoowala2018-04-022-49/+43
| | | | | | Use a host interface for CustomLayer instead of function pointers Co-authored-by: Julian Rex <julian.rex@mapbox.com>
* [core] Fixed to-rgba with zero opacityMinh Nguyễn2018-03-301-0/+2
|
* [core] Don't resolve tokens after evaluating a text-field or icon-image ↵John Firebaugh2018-03-224-22/+26
| | | | expression (#11509)
* [core] Add expression filter support (#11251)Lucas Wojciechowski2018-03-092-241/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP * WIP * WIP * Remove Filter::operator()(const Feature&) * WIP * WIP * WIP * WIP * Hook up expression filter evaluator * Replace `shared_ptr` with &reference * Fill in implementation of `void operator()(const ExpressionFilter&)` * Fix failing tests * Switch back to a shared_ptr per chat with @anandthakker * Fix benchmark compilation * Shot in the dark to fix CI * Shot in the dark to fix CI (part 2) * Shot in the dark to fix CI (part 3) * In src/mbgl/style/conversion/filter.cpp, add a port of isExpressionFilter and use it to decide in Converter<Filter>::operator() whether to parse the incoming JSON as an ExpressionFilter or one of the legacy filter types * Remove bool Filter::operator()(const GeometryTileFeature&) const * Ensure the map zoom is passed into filtering operations wherever applicable * Add expression filter tests * Addressed PR feedback * Implement `NSPredicate *operator()(mbgl::style::ExpressionFilter filter)` * Fix formatting& nit
* Relax type checking for "length"John Firebaugh2018-03-011-0/+32
|
* [core] Implement Expression::serialize()Chris Loer2018-02-2817-8/+60
| | | | | | | | Issue #10714 - Each expression stores its operator as a string, and default serialization is [operator, serialize(child1), ...] - Custom implementations of `serialize` for Expression types that don't follow the pattern - expression::Value -> mbgl::Value converter - node_expression bindings to expose `serialize`
* Correctly parse constant expressions in dds style properties (#11282)Anand Thakker2018-02-212-3/+22
| | | | | | | | * Correctly parse constant expressions in dds style properties Closes #10849 * Clarify
* [core, ios, macos, android, node] Heatmap layer (#11046)Vladimir Agafonkin2018-02-156-0/+188
| | | | | 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>
* [core] add support for mapzen terrarium (#11154)Molly Lloyd2018-02-141-2/+8
| | | | | | | | | | | | * add support for mapzen terrarium * Encoding --> DEMEncoding, avoid if statement when unpacking elevation values * add Terrarium test * update submodule * remove redundant checks
* [core] Rename "onLowMemory" to "reduceMemoryUse".Chris Loer2018-02-141-1/+1
| | | | | Android still calls "reduceMemoryUse" only while handling a low memory event. iOS, on the other hand, calls "reduceMemoryUse" every time it enters the background.
* [core] Make RendererObserver a public interfaceThiago Marcos P. Santos2018-02-091-0/+35
| | | | Needed by backends implementing asyncronous rendering
* Add options for Custom Geometry Source types to enable clipping and wrapping ↵Asheem Mamoowala2018-02-072-0/+22
| | | | geometry (#11041)
* [core] prioritize Thread::pause() callsKonstantin Käfer2018-02-062-11/+34
|