summaryrefslogtreecommitdiff
path: root/src/mbgl/text
Commit message (Collapse)AuthorAgeFilesLines
* [core] Favor previous anchor only when still in the `text-variable-anchor` ↵Mikhail Pozdnyakov2019-07-171-10/+14
| | | | | | options Port of https://github.com/mapbox/mapbox-gl-js/pull/8473
* [core] RenderSource creates render itemsMikhail Pozdnyakov2019-07-041-1/+1
|
* [core] Remove orchestration methods from RenderTileMikhail Pozdnyakov2019-07-042-1/+3
|
* [core] Use fresh transform state for bucket vertices update in placementMikhail Pozdnyakov2019-06-033-10/+11
| | | | The transform state cached in placement might get stale and cannot be used for bucket vertices updates.
* [core] Avoid unneeded update of symbol dynamic vertex bufferMikhail Pozdnyakov2019-06-032-4/+12
|
* [core] Placement::placeLayerBucket() -> placeBucket()Mikhail Pozdnyakov2019-05-282-2/+2
|
* [core] Encapsulate symbol bucket placement code in Placement::placeLayerBucket()Mikhail Pozdnyakov2019-05-282-78/+66
|
* [core] RenderTile does not expose TileMikhail Pozdnyakov2019-05-282-12/+8
| | | | | | RenderTile and Tile will be split when ochestration movces to a separate thread. This PR improves encapsulation of Tiles management: now performed within TilePyramid.
* [core] Offset viewport center when edge insets are specifiedAleksandar Stojiljkovic2019-05-281-7/+10
| | | | | | | | | | | | | | | | | | | | | The change is implemented in TransformState::getProjMatrix, the rest of the code is making sure that existing API contracts stay and there are tests verifyingrendering and render query processing only items within screen and given tolerance around screen edges. MapView: don't bake edge insets into relalculated camera center. Keep edge insets as property of camera in TransformState (similar to pitch, zoom, bearing) independent from specified camera center. Interpolate edge insets in animation. iOS Demo app: "Turn On/Off Content Insets" pitch the camera and navigate to convenient location in Denver, where streets are parallel to cardinal directions, to illustrate viewport center offset when edge insets are set. Tests: ViewFrustumCulling: although Annotations are deprecated, queryRenderedFeatures related tests in Annotations would need to get ported and decided to add the edge insets related query tests next to them. Verify frustum culling (render+queryRenderedFeatures) With different camera and edge insets setups. TODO: port Annotations tests. Transform.Padding: Verify that coordinates take proper place on screen after applying edge insets. LocalGlyphRasterizer: verify text rendering when applying padding. Related to #11882: both use projection matrix elements [8] and [9]. Alternative approach to this was to increase and offset map origin so that the screen would be a sub-rectangle in larger map viewport. This approach has a drawback of unecessary processing the items that are outside screen area. Fixes #12107, #12728, navigation-sdks/issues/120
* [core] Prefer breaking lines at zero width space (ZWSP)Alexander Shalamov2019-05-242-11/+26
|
* [core] SymbolBucket updates complete at placement stageMikhail Pozdnyakov2019-05-242-7/+104
| | | | | | | | `RenderSymbolLayer` does not have to update dynamic vertices of its buckets, this logic is moved to placement (which is already updates opacity vertices). * fixes clustering of labels when text variable placement enabled - as assignes `usesVariablePlacement` per bucket * simplifies the code in `RenderSymbolLayer` (the `RenderSymbolLayer::upload()` is now omitted). * symbol buckets are not modified after orchestration finishes
* [core] CrossTileSymbolIndex::pruneUnusedLayers() does not create ↵Mikhail Pozdnyakov2019-05-201-7/+5
| | | | intermadiate containers
* [core] Avoid bucket downcasting in PlacementMikhail Pozdnyakov2019-05-192-44/+48
|
* [core] Remove RenderLayerSymbolInterfaceMikhail Pozdnyakov2019-05-193-3/+0
|
* [core] Placement accepts RenderLayer instancesMikhail Pozdnyakov2019-05-192-34/+15
|
* [core] RenderLayerSymbolInterface is not used in CrossTileSymbolIndexMikhail Pozdnyakov2019-05-192-27/+11
|
* [core] add gfx::UploadPass, split startRender into prepare and uploadKonstantin Käfer2019-05-151-2/+2
|
* [core] Create glyph manager at renderer construction timeMikhail Pozdnyakov2019-05-142-15/+15
| | | | Avoid unnecessary glyph manager presence check in `Renderer::Impl::()`.
* [core] RenderTile shall never be created for a not renderable tileMikhail Pozdnyakov2019-05-141-3/+1
| | | | | | | | A RenderTile is already never created for a not renderable tile, guarantied by the checks in `updateRenderables()`. However, the client code had plenty of `isRenderable()` checks in the render path, which complicated the code and affected rendering performance. This patch removes the unneeded checks from the client code and puts an assertion to `TilePyramid::addRenderTile()`.
* [core] Placement order matches viewport-y sortMikhail Pozdnyakov2019-05-081-139/+148
| | | | | | | | Symbols are placed accordingly to their viewport Y order, if the style `symbol-z-order` is set to `viewport-y`. This improves rendering of symbol layers, where icons are allowed to overlap but not text.
* [core] clang-tidy fixesKonstantin Käfer2019-04-053-7/+7
|
* [core] Single line optimization for variable label placementMikhail Pozdnyakov2019-03-292-3/+2
|
* [core] Introduce variable text placement for point labels - Placement partMikhail Pozdnyakov2019-03-294-46/+245
|
* [core] Introduce variable text placement for point labels - Render partAlexander Shalamov2019-03-291-0/+6
|
* [core] Introduce variable text placement for point labels - Layout partMikhail Pozdnyakov2019-03-297-50/+74
|
* [core] Add possibility of overriding paint properties inside format ↵Alexander Shalamov2019-03-136-17/+34
| | | | | | | | | | | | | | | | | | expression #14062 * [core] Add format override expression and formatted section to evaluation context * [core] Add textColor to TaggedString's formatted section * [core] Add FormatSectionOverrides and introduce overridable properties * [core] Populate symbol layer paint properties for text sections * [core] Add benchmark for style that uses text-color override * [core] Add unit test for FormatOverrideExpression * [core] Add unit test for FormatSectionOverrides
* [core] Transform{State}: s/angle/bearing/Bruno de Oliveira Abinader2019-03-041-1/+1
|
* [core] disallow subtyping of gl::Attributes<> and use type aliases insteadKonstantin Käfer2019-03-011-4/+4
|
* [core] Support for excluding ideographic glyphs from offline downloads.Chris Loer2018-12-211-0/+2
|
* [core] Avoid divide-by-zero when transition duration is 0..Chris Loer2018-12-111-2/+5
| | | | Fixes issue #13506 -- transition duration of 0 would cause symbol flickering.
* [core] Let placement transitions use the transition duration, if set, and ↵Bruno de Oliveira Abinader2018-11-212-9/+17
| | | | allow disabling them entirely
* [core] Replace RenderSymbolLayer downcast with symbol interfaceAlexander Shalamov2018-11-194-19/+20
|
* [build] Remove #pragma diagnostic for boostThiago Marcos P. Santos2018-11-011-10/+0
| | | | | Boost is now included as a system header and the compiler should ignore it when issuing warnings.
* [core] remove some uses of <iostream> and <sstream>Konstantin Käfer2018-10-231-0/+1
|
* [core] don't use <boost/functional/hash.hpp> to avoid <locale> includeKonstantin Käfer2018-10-233-12/+15
|
* [core] remove use of <boost/algorithm/string.hpp>Konstantin Käfer2018-10-232-6/+1
|
* [Core] Ensure queryRenderedFeatures accounts for icon-rotate (#13105)Ryan Hamley2018-10-182-7/+32
|
* [core] Initial implementation of 'format' expressionChris Loer2018-10-1512-65/+262
|
* [core] Bidi support for styled text.Chris Loer2018-10-151-0/+4
| | | | Remove use of QString from non-ICU Qt stub bidi implementation since we weren't making use of it.
* [core] Port "collision group" plumbing to gl-native.Chris Loer2018-09-124-22/+83
| | | | | [node] Hook up map-wide "crossSourceCollisions" option, defaulting to true. [test] Pass "crossSourceCollisions" test option through test harness; enable cross-source-collisions tests on native.
* [android] add support for gnustlKonstantin Käfer2018-09-111-1/+1
|
* [core] Mark allow-overlap symbols visible even outside of collision grid.Chris Loer2018-09-061-1/+20
| | | | Fixes issue #12683.
* [core] Added pragma to remove warning ("unknown warning group ↵Julian Rex2018-08-281-0/+1
| | | | '-Wtautological-constant-compare', ignored") on iOS build (#12753)
* [core, node] Re-implement "avoid edges" behavior for MapMode::TileChris Loer2018-08-203-17/+52
| | | | | | | - Fixes issue #12461. - Only implement "avoid edges" in MapMode::Tile since it's no longer relevant in Static or Continuous mode. - New: Force "avoid edges" to "true" for line labels, since in tile mode they'll always clip poorly at tile boundaries. - Remove unused "withinPlus0/inside" logic.
* [core] Evict unused font stacks from GlyphManagerJohn Firebaugh2018-08-172-0/+10
|
* [core] Don't default-show text/icons that depend on the placement of a ↵Chris Loer2018-08-131-2/+9
| | | | | | paired icon/text Fixes issue #12483.
* [core] Replace remaining dynamic_cast with static_castBruno de Oliveira Abinader2018-08-081-1/+1
|
* [core] Use hand-rolled RTTIJohn Firebaugh2018-07-242-3/+3
|
* [core] Check all bucket dynamic_castsJohn Firebaugh2018-07-242-12/+19
| | | | A mismatch can occur when a layer changes from one type to another.
* [core] Add `symbol-placement: line-center`Chris Loer2018-07-234-15/+79
| | | | | - Remove unused/vestigial 'maxCameraDistance' - Create a single collision circle for line labels that are less than half the width of a collision circle