Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [core][tile mode] Further improve the label prioritization | Mikhail Pozdnyakov | 2020-04-28 | 1 | -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 labels | Mikhail Pozdnyakov | 2020-04-28 | 2 | -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 prioritization | Mikhail Pozdnyakov | 2020-04-28 | 1 | -3/+9 |
| | |||||
* | [core] Fix modernize-use-equals-default errors in header files | Thiago Marcos P. Santos | 2020-04-17 | 1 | -1/+2 |
| | | | | As reported by clang-tidy-8. | ||||
* | [core] Fix performance-move-const-arg errors in header files | Thiago Marcos P. Santos | 2020-04-17 | 1 | -2/+2 |
| | | | | As reported by clang-tidy-8. | ||||
* | [core] Fix modernize-pass-by-value errors in header files | Thiago Marcos P. Santos | 2020-04-17 | 1 | -1/+3 |
| | | | | As reported by clang-tidy-8. | ||||
* | [core] Fix readability-avoid-const-params-in-decls errors in header files | Thiago Marcos P. Santos | 2020-04-17 | 7 | -55/+55 |
| | | | | As reported by clang-tidy-8. | ||||
* | [core] PlacedSymbolData contains layer id | Mikhail Pozdnyakov | 2020-04-09 | 2 | -2/+6 |
| | |||||
* | [core][tile mode] Support variable placement + icon-text-fit | Mikhail Pozdnyakov | 2020-04-08 | 1 | -1/+15 |
| | |||||
* | [core][tile mode] Fix placement mismatch for the labels with same geomerty | Mikhail Pozdnyakov | 2020-04-08 | 1 | -2/+9 |
| | |||||
* | [core][tile mode] Improve placement algorithm for variable labels | Mikhail Pozdnyakov | 2020-04-08 | 2 | -17/+26 |
| | |||||
* | [core][tile mode] Placement algorithm improvements | Mikhail Pozdnyakov | 2020-04-08 | 3 | -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 intersections | Mikhail Pozdnyakov | 2020-04-08 | 2 | -57/+70 |
| | |||||
* | [core] Introduce PlacementContext | Mikhail Pozdnyakov | 2020-04-08 | 2 | -371/+434 |
| | | | | Make `placeSymbol()` a method and introduce copiable `PlacementContext`. | ||||
* | [build] Fix undefined behavour sanitizer (#16375) | zmiao | 2020-04-07 | 1 | -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 padding | Mikhail Pozdnyakov | 2020-04-02 | 3 | -3/+6 |
| | |||||
* | [core][tile mode] Implement API to collect placed symbols data | Mikhail Pozdnyakov | 2020-04-02 | 2 | -4/+56 |
| | |||||
* | [core] Introduce API to collect placed symbols data | Mikhail Pozdnyakov | 2020-04-02 | 2 | -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-* errors | Thiago Marcos P. Santos | 2020-03-30 | 8 | -46/+51 |
| | | | | As reported by clang-tidy-8. | ||||
* | [core][tile mode] Share seenCrossTileIDs across all placeLayer() calls | Mikhail Pozdnyakov | 2020-03-25 | 2 | -7/+15 |
| | | | | Thus we obviate lots of repeated operations for already placed symbols. | ||||
* | [core][tile mode] Place tile intersecting labels first, across all layers | Mikhail Pozdnyakov | 2020-03-25 | 2 | -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 implementations | Mikhail Pozdnyakov | 2020-03-25 | 2 | -181/+273 |
| | |||||
* | [core] Introduce Placement::placeLayers() | Mikhail Pozdnyakov | 2020-03-25 | 2 | -3/+10 |
| | |||||
* | [core] Fix modernize-return-braced-init-list errors | Thiago Marcos P. Santos | 2020-03-23 | 1 | -2/+2 |
| | | | | As reported by clang-tidy-8. | ||||
* | [core] Fix performance-unnecessary-value-param errors | Thiago Marcos P. Santos | 2020-03-23 | 6 | -10/+10 |
| | | | | As reported by clang-tidy-8. | ||||
* | [core] Fix performance-type-promotion-in-math-fn errors | Thiago Marcos P. Santos | 2020-03-23 | 2 | -7/+6 |
| | | | | As reported by clang-tidy-8. | ||||
* | [core] Fix performance-for-range-copy errors | Thiago Marcos P. Santos | 2020-03-23 | 1 | -1/+1 |
| | | | | As reported by clang-tidy-8. | ||||
* | [core] Fix crash at Placement::getSymbolPlacement() | Mikhail Pozdnyakov | 2020-03-13 | 1 | -1/+1 |
| | |||||
* | [core] Binary size fixup | Mikhail Pozdnyakov | 2020-03-12 | 1 | -38/+46 |
| | |||||
* | [core] Collision index uses doubled padding with the tilted view | Mikhail Pozdnyakov | 2020-03-12 | 1 | -3/+11 |
| | |||||
* | [core] Variable labels stick to latest anchor if the view is tilted | Mikhail Pozdnyakov | 2020-03-12 | 2 | -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 tilted | Mikhail Pozdnyakov | 2020-03-12 | 2 | -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 last | Mikhail Pozdnyakov | 2020-03-12 | 2 | -1/+29 |
| | |||||
* | [core] Adjust mapbox-gl-native for the updated debug shader semantics | Mikhail Pozdnyakov | 2020-03-11 | 1 | -1/+1 |
| | |||||
* | [core][tile mode] Fix assertion at `line-center` placement handling | Mikhail Pozdnyakov | 2020-03-10 | 1 | -6/+8 |
| | | | | The `symbolIntersectsTileEdges` algorithm should not be applied to the symbols with `line-center` placement | ||||
* | [core] CollisionIndex::intercectsTileEdges -> intersectsTileEdges | Mikhail Pozdnyakov | 2020-03-06 | 3 | -5/+5 |
| | |||||
* | [core] Tile mode placement algorithm must consider icons bounding boxes | Mikhail Pozdnyakov | 2020-03-06 | 1 | -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 BucketPlacementParameters | Mikhail Pozdnyakov | 2020-03-03 | 2 | -16/+6 |
| | |||||
* | [core] Get rid of LayerPlacementData::firstInBucket | Mikhail Pozdnyakov | 2020-03-03 | 2 | -3/+3 |
| | |||||
* | [core] Encapsulate placement code handling symbols sort ranges | Mikhail Pozdnyakov | 2020-03-03 | 2 | -15/+4 |
| | |||||
* | [core] sort symbols using symbol-sort-key before placement (#16023) | Ansis Brammanis | 2020-02-11 | 2 | -10/+22 |
| | | | | fix #15964 partially port mapbox/mapbox-gl-js#9054 | ||||
* | [tile mode] Improvements in symbol placement on tile borders | Mikhail Pozdnyakov | 2020-02-03 | 3 | -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 placement | Mikhail Pozdnyakov | 2020-01-27 | 1 | -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 tiles | Mikhail Pozdnyakov | 2020-01-22 | 3 | -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 Pozdnyakov | 2020-01-22 | 2 | -5/+5 |
| | |||||
* | [core] Simplify CrossTileSymbolIndex::addLayer() | Mikhail Pozdnyakov | 2020-01-22 | 2 | -6/+15 |
| | |||||
* | [core] Avoid repeated calculations in symbol placement | Mikhail Pozdnyakov | 2020-01-22 | 1 | -40/+44 |
| | |||||
* | [core] Cache showCollisionBoxes in Placement | Mikhail Pozdnyakov | 2020-01-22 | 2 | -14/+11 |
| | |||||
* | [core] Pass UpdateParameters to Placement constructor | Mikhail Pozdnyakov | 2020-01-22 | 4 | -27/+25 |
| | |||||
* | [core] Pass placement commit parameters in constructor | Mikhail Pozdnyakov | 2020-01-22 | 2 | -6/+9 |
| |