summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [build] Adding a build flag to build without GL if needed (#16120)Thomas Moenicke2020-02-039-43/+41
| | | | | | * [build] Adding a build flag to build without GL if needed * [build] Moving custom layer to mbgl/gl
* [core] Add getSharedExpression to property expressionAlexander Shalamov2020-02-031-0/+4
| | | | | New method can be used for aggregating property expressions from multiple properties(layers) into single match / case expression.
* [core] Use std::list instead of std::map for factory instanceAlexander Shalamov2020-02-031-9/+21
| | | | | Factory 'get' method can be invoked recursively and stable iterators are required to guarantee safety.
* [tile mode] Fix variable symbols placementMikhail Pozdnyakov2020-01-271-9/+4
| | | | | This commit allows the variable symbols to cross the tile border only if their anchor is the first anchor from the `text-variable-anchor` list.
* GeoJSONSource is re-using the existing schedulerMikhail Pozdnyakov2020-01-242-13/+29
| | | | Thus avoiding spawing new threads on `setGeoJSONData()` calls.
* [core] Use weak scheduler inside mailboxAlexander Shalamov2020-01-231-14/+16
| | | | | There is no guarantee that scheduler is alive when message is pushed to the mailbox.
* [core] Move resource loader to dedicated thread with schedulerAlexander Shalamov2020-01-231-1/+0
|
* [core] remove std::vector copy step in SymbolLayout::anchorIsTooClose (#16131)galinelle2020-01-221-1/+1
| | | A const reference is enough here.
* [core] Do not index and place the off-screen symbols for overscaled tilesMikhail Pozdnyakov2020-01-228-19/+58
| | | | | For overscaled tiles the viewport might be showing only a small part of the tile, so we filter out the off-screen symbols to improve the performance.
* [core] Simplify Placement::addLayer()Mikhail Pozdnyakov2020-01-224-9/+10
|
* [core] Simplify CrossTileSymbolIndex::addLayer()Mikhail Pozdnyakov2020-01-225-10/+20
|
* [core] Avoid repeated calculations in symbol placementMikhail Pozdnyakov2020-01-222-42/+47
|
* [core] Cache showCollisionBoxes in PlacementMikhail Pozdnyakov2020-01-223-20/+13
|
* [core] Pass UpdateParameters to Placement constructorMikhail Pozdnyakov2020-01-225-38/+27
|
* [core] Pass std::shared_ptr<UpdateParameters> to the render orchestratorMikhail Pozdnyakov2020-01-223-66/+67
| | | | So that it can retain ownership of the given parameters.
* [core] Pass placement commit parameters in constructorMikhail Pozdnyakov2020-01-223-9/+14
|
* [core] Consider symbol bucket leader id in cross-tile symbol indexingMikhail Pozdnyakov2020-01-222-21/+38
| | | | | | | Only buckets with the same leader id participate in `TileLayerIndex::findMatches()` in order to improve its performace. `TileLayerIndex` constness is fixed.
* [core] implement stretchable icons for icon-text-fitKonstantin Käfer2020-01-1513-74/+257
|
* [core] move icon rotation from shaping to quad generation to mirror JSKonstantin Käfer2020-01-157-16/+14
|
* [core] Remove unused WritingMode from getIconQuadsKonstantin Käfer2020-01-153-6/+5
|
* [core] Change ImagePosition from storing non-padded rect to padded rect to ↵Konstantin Käfer2020-01-155-45/+21
| | | | mirror the JS implementation
* [core] add stretches + content to ImagePositionKonstantin Käfer2020-01-152-8/+8
|
* [core] parse stretchX, stretchX, and content from sprite JSON filesKonstantin Käfer2020-01-152-35/+110
|
* [core] Add stretches and content to style::ImageKonstantin Käfer2020-01-154-14/+83
|
* [core] getGlyphQuad -> getGlyphQuadsKonstantin Käfer2020-01-157-33/+64
|
* [core] add pixelOffset and minFontScale to SymbolQuadsKonstantin Käfer2020-01-153-9/+46
|
* [core] Upgrade shaders and add new vertices to SymbolLayoutKonstantin Käfer2020-01-159-471/+521
|
* [core] Modularize FileSource codebase (#15768)Alexander Shalamov2020-01-1322-108/+208
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [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
* [core] Fix GeoJSONVTData ownership and life cycleMikhail Pozdnyakov2020-01-092-11/+7
| | | | | | | | | | | | | | | | | | | | | | | Before this change, the `GeoJSONVTData` instance was retained at the scheduled lambda, which run on the worker thread represented by the `GeoJSONVTData::scheduler` class member: ``` std::weak_ptr<GeoJSONVTData> weak = shared_from_this(); scheduler->scheduleAndReplyValue( [id, weak, this]() -> TileFeatures { if (auto self = weak.lock()) { return impl.getTile(id.z, id.x, id.y).features; } return {}; }, fn); ``` It caused program termination in case `self` turned to be the last reference to `this`, as the `std::thread` destructor was called from the thread it represented. Now, only the `GeoJSONVTData::impl` class member is retained.
* [android][core] Add `Map::latLngBoundsForCameraUnwrapped` and jni binding ↵Peng Liu2020-01-091-0/+21
| | | | | | | | | for `getVisibleCoordinateBounds`. (#16069) * [android] Add getVisibleCoordinateBounds method. * Fix Map::latLngBoundsForCamera, add Android binding for getVisibleRegionBounds. * Add unit tests for CameraToLatLngBoundsWithRotation and CameraToLatLngBoundsCrossDateLine. * Move API breaking changes to a new method name latLngBoundsForCameraUnwrapped.
* [core] Introduce CollisionIndex::getProjectedCollisionBoundaries()Mikhail Pozdnyakov2020-01-083-21/+26
| | | | In order to remove the repeated code.
* [core] Introduce CollisionBoundaries and use it in CollisionIndexMikhail Pozdnyakov2020-01-083-100/+109
|
* [core] Use only the first variable anchor for the symbols intersecting tile ↵Mikhail Pozdnyakov2020-01-081-7/+14
| | | | | | borders Do not try the following variable anchors, if the first variable anchor placement failed.
* [core] Fix CollisionIndex::featureIntersectsTileBorders() implementationMikhail Pozdnyakov2020-01-082-4/+3
|
* [core] Performance fix for placement in tile modeMikhail Pozdnyakov2020-01-081-2/+10
|
* [core] In tile mode, place labels from tile borders firstMikhail Pozdnyakov2020-01-081-53/+88
|
* [core] Pre-defined variable anchor at tile bordersMikhail Pozdnyakov2020-01-082-20/+49
| | | | In tile mode, stick to the first variable anchor if the label intersects tile borders.
* [core] Add CollisionIndex::featureIntersectsTileBorders()Mikhail Pozdnyakov2020-01-082-4/+33
|
* [core] Consolidate more logic in calculateVariableLayoutOffset()Mikhail Pozdnyakov2020-01-081-13/+25
|
* remove unused code (#16077)Dane Springmeyer2019-12-192-2/+0
|
* [core] Handle zero text sizeMikhail Pozdnyakov2019-12-191-1/+1
| | | | | | | | The style specification stipulates that `text-size` values must be positive (https://docs.mapbox.com/mapbox-gl-js/style-spec/#layout-symbol-text-size). However, a zero value could be passed to the engine (e.g. as a result of an expression) this patch handles it and avoids assertion hit in `shaping.cpp`.
* Include padding when testing camera scale in cameraForLatLngBoundsAleksandar Stojiljkovic2019-12-171-1/+4
| | | | | Repurpose LatLngBoundsToCameraWithBearingAndPitch to test scaling and camera setup, both with and without padding. This adds testing of path not covered in mapbox/mapbox-gl-native-ios#59.
* correct insets camera management - see ↵Romain Quidet2019-12-171-16/+3
| | | | https://github.com/mapbox/mapbox-gl-native-ios/issues/59
* [core] Fix really overscaled lines #16018Ansis Brammanis2019-12-171-6/+7
|
* [core] Enable 'line-sort-key' and 'fill-sort-key' layout properties (#15839)Andrew Hay Kurtz2019-12-1714-120/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* [core] Add style::Layer(Impl) constructorMikhail Pozdnyakov2019-12-132-8/+6
|
* [core] Fix -Wshadow when using GCC 4.9Thiago Marcos P. Santos2019-12-122-7/+7
|
* [core] Placement::commit() handles absence of previuos placementMikhail Pozdnyakov2019-12-093-5/+14
|
* [core] Simplify placement code path for still and tile modesMikhail Pozdnyakov2019-12-092-11/+29
|
* [core] Add unit test for calculateTileDistancesAlexander Shalamov2019-12-092-4/+5
|