summaryrefslogtreecommitdiff
path: root/src/mbgl/text
Commit message (Collapse)AuthorAgeFilesLines
* [core][tile mode] Further improve the label prioritizationMikhail Pozdnyakov2020-04-281-12/+16
| | | | | | The most important variable labels a placed right away at "populate intersections" phase, even if they do not actually intersect the tile borders.
* [core][tile mode] Fix placement order of the variable labelsMikhail Pozdnyakov2020-04-282-29/+41
| | | | | | Before this change, all variable labels that could potentially intersect tile borders were placed first, breaking the style label placement priority order.
* [core] Label intersection prioritizationMikhail Pozdnyakov2020-04-281-3/+9
|
* [core] Fix modernize-use-equals-default errors in header filesThiago Marcos P. Santos2020-04-171-1/+2
| | | | As reported by clang-tidy-8.
* [core] Fix performance-move-const-arg errors in header filesThiago Marcos P. Santos2020-04-171-2/+2
| | | | As reported by clang-tidy-8.
* [core] Fix modernize-pass-by-value errors in header filesThiago Marcos P. Santos2020-04-171-1/+3
| | | | As reported by clang-tidy-8.
* [core] Fix readability-avoid-const-params-in-decls errors in header filesThiago Marcos P. Santos2020-04-177-55/+55
| | | | As reported by clang-tidy-8.
* [core] PlacedSymbolData contains layer idMikhail Pozdnyakov2020-04-092-2/+6
|
* [core][tile mode] Support variable placement + icon-text-fitMikhail Pozdnyakov2020-04-081-1/+15
|
* [core][tile mode] Fix placement mismatch for the labels with same geomertyMikhail Pozdnyakov2020-04-081-2/+9
|
* [core][tile mode] Improve placement algorithm for variable labelsMikhail Pozdnyakov2020-04-082-17/+26
|
* [core][tile mode] Placement algorithm improvementsMikhail Pozdnyakov2020-04-083-29/+81
| | | | | | | | | | | Now, the intersecting symbols are placed across all layers according to the following rules: 1) First we look, which of the tile border(s) the symbol intersects and prioritize the the symbol accordingly (high priority -> low priority): vertical & horizontal -> vertical -> horizontal 2) For the symbols that intersect the same tile border(s), assuming the tile border split symbol into several sections, we look at the minimal section length. The symbol with a larger minimal section length is placed first. 3) Finally, for the symbols that intersect the same tile border(s), and have equal minimal section length, we look at the anchor Y cordinate.
* [core] Symbol by symbol placement for intersectionsMikhail Pozdnyakov2020-04-082-57/+70
|
* [core] Introduce PlacementContextMikhail Pozdnyakov2020-04-082-371/+434
| | | | Make `placeSymbol()` a method and introduce copiable `PlacementContext`.
* [build] Fix undefined behavour sanitizer (#16375)zmiao2020-04-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * [build] Fix integer overflow runtime error for core part Temporarily remove circle ci UBSAN build precondition * [build] Enable all of the ubsans [build] Check runtime error [build] Update UBSAN_OPTION * [build] Add UBSAN blacklist [build] Ignore system libraries [build] Ignore vendor library * [build] Fix implicit conversion runtime error in core * [build] Fix division by zero runtime error * [build] Add unfixed error to ubsan blacklist * [build] Make UBSAN halt on error Revert "Temporary remove build precondition" * [build] Fix division by zero error * [build] Make UBSAN officially work without FIXME prefix * [build] Fix implicit conversion from int64_t to uint64_t * [build] Rename style test json file name * Address review findings
* [core] PlacedSymbolData includes viewport paddingMikhail Pozdnyakov2020-04-023-3/+6
|
* [core][tile mode] Implement API to collect placed symbols dataMikhail Pozdnyakov2020-04-022-4/+56
|
* [core] Introduce API to collect placed symbols dataMikhail Pozdnyakov2020-04-022-4/+12
| | | | | | | | | | The following methods are added to the `Renderer` class: - `collectPlacedSymbolData()` enables or disables collecting of the placed symbols data - `getPlacedSymbolsData()` if collecting of the placed symbols data is enabled, returns the reference to the `PlacedSymbolData` vector holding the collected data.
* [core] Fix readability-* errorsThiago Marcos P. Santos2020-03-308-46/+51
| | | | As reported by clang-tidy-8.
* [core][tile mode] Share seenCrossTileIDs across all placeLayer() callsMikhail Pozdnyakov2020-03-252-7/+15
| | | | Thus we obviate lots of repeated operations for already placed symbols.
* [core][tile mode] Place tile intersecting labels first, across all layersMikhail Pozdnyakov2020-03-252-31/+34
| | | | | | | | Thus, we reduce the amount of label cut-offs in Tile mode. Before, labels were arranged within one symbol layer (one bucket), which was not enough for several symbol layers being placed at the same time.
* [core] Introduce map mode specific Placement implementationsMikhail Pozdnyakov2020-03-252-181/+273
|
* [core] Introduce Placement::placeLayers()Mikhail Pozdnyakov2020-03-252-3/+10
|
* [core] Fix modernize-return-braced-init-list errorsThiago Marcos P. Santos2020-03-231-2/+2
| | | | As reported by clang-tidy-8.
* [core] Fix performance-unnecessary-value-param errorsThiago Marcos P. Santos2020-03-236-10/+10
| | | | As reported by clang-tidy-8.
* [core] Fix performance-type-promotion-in-math-fn errorsThiago Marcos P. Santos2020-03-232-7/+6
| | | | As reported by clang-tidy-8.
* [core] Fix performance-for-range-copy errorsThiago Marcos P. Santos2020-03-231-1/+1
| | | | As reported by clang-tidy-8.
* [core] Fix crash at Placement::getSymbolPlacement()Mikhail Pozdnyakov2020-03-131-1/+1
|
* [core] Binary size fixupMikhail Pozdnyakov2020-03-121-38/+46
|
* [core] Collision index uses doubled padding with the tilted viewMikhail Pozdnyakov2020-03-121-3/+11
|
* [core] Variable labels stick to latest anchor if the view is tiltedMikhail Pozdnyakov2020-03-122-22/+29
| | | | This is done in order to improve labels stability and for the performace reasons.
* [core] Do not squeeze placement period if the view is tiltedMikhail Pozdnyakov2020-03-122-7/+3
| | | | | | If the view is not tilted, we want the new symbols to show up faster, so we squeeze the placement period. On contrary, with the tilted view it's more important to make placement rarely for performance reasons and as the new symbols are normally "far away" and the user is not that interested to see them ASAP.
* [core] Place already visible symbols first and hidden symbols lastMikhail Pozdnyakov2020-03-122-1/+29
|
* [core] Adjust mapbox-gl-native for the updated debug shader semanticsMikhail Pozdnyakov2020-03-111-1/+1
|
* [core][tile mode] Fix assertion at `line-center` placement handlingMikhail Pozdnyakov2020-03-101-6/+8
| | | | The `symbolIntersectsTileEdges` algorithm should not be applied to the symbols with `line-center` placement
* [core] CollisionIndex::intercectsTileEdges -> intersectsTileEdgesMikhail Pozdnyakov2020-03-063-5/+5
|
* [core] Tile mode placement algorithm must consider icons bounding boxesMikhail Pozdnyakov2020-03-061-36/+42
| | | | | | Tile mode placement algorithm now checks if bounding boxes for both label text and icon are intersecting the edges of the tiles. Before, it checked only text bounding boxes and thus label icons might have got cut off.
* [core] Drop BucketPlacementParametersMikhail Pozdnyakov2020-03-032-16/+6
|
* [core] Get rid of LayerPlacementData::firstInBucketMikhail Pozdnyakov2020-03-032-3/+3
|
* [core] Encapsulate placement code handling symbols sort rangesMikhail Pozdnyakov2020-03-032-15/+4
|
* [core] sort symbols using symbol-sort-key before placement (#16023)Ansis Brammanis2020-02-112-10/+22
| | | | fix #15964 partially port mapbox/mapbox-gl-js#9054
* [tile mode] Improvements in symbol placement on tile bordersMikhail Pozdnyakov2020-02-033-35/+82
| | | | | | | | | | | | | | | | This change fixes the following problems: 1) Before this change, when multiple symbols were grouped close to the tile borders, different tiles could place different symbols, because each tile arbitrary assigned feature ids, and these ids defined the placement order being applied. This caused artifacts at the tile boundaries. With this change, in tile mode the placement order of two symbols crossing a tile border is defined by their anchor `y` values. It means that the symbols are being placed the same order across all the tiles. 2) Before this change, the engine did not place with priority the symbols crossing the borders between two neighboring tiles. Now it does, and it improves a lot symbol placement stability in the tile map mode.
* [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.
* [core] Do not index and place the off-screen symbols for overscaled tilesMikhail Pozdnyakov2020-01-223-13/+47
| | | | | 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-222-5/+5
|
* [core] Simplify CrossTileSymbolIndex::addLayer()Mikhail Pozdnyakov2020-01-222-6/+15
|
* [core] Avoid repeated calculations in symbol placementMikhail Pozdnyakov2020-01-221-40/+44
|
* [core] Cache showCollisionBoxes in PlacementMikhail Pozdnyakov2020-01-222-14/+11
|
* [core] Pass UpdateParameters to Placement constructorMikhail Pozdnyakov2020-01-224-27/+25
|
* [core] Pass placement commit parameters in constructorMikhail Pozdnyakov2020-01-222-6/+9
|