summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* [core] Check type of a convertible value when constructing legacy filterupstream/node-releaseAlexander Shalamov2019-08-161-1/+6
|
* [core][node] Serialize formatted expression's text-color optionAlexander Shalamov2019-08-151-0/+7
| | | | This enables proper round-tripping for serialized format expression.
* [core] Clear collision text boxes between symbol placement iterationsAlexander Shalamov2019-08-141-0/+1
|
* [core] Enable variable placement with allowed text overlapMikhail Pozdnyakov2019-08-131-2/+6
|
* [core] Simplifications to variable text placement code pathMikhail Pozdnyakov2019-08-132-12/+10
|
* [core] Render half-width glyphs in upright orientationAlexander Shalamov2019-08-136-8/+31
| | | | | | | | | | This change forces glyphs whose natural orientation in vertical writing mode is 'sideways' to be rendered in upright orientation (only for non complex text layouts). This is different compared to W3C / browser behavior that is by default, renders glyphs in their respective natural orientation. In the future, there might need to add a new layout property that would control glyph orientation separately (e.g., text-glyph-orientation: natural | upright).
* [core] Use constexpr map for verticalized punctiationAlexander Shalamov2019-08-131-2/+4
|
* [core] Break lines for vertical writing modeAlexander Shalamov2019-08-131-4/+3
|
* [core] Rotate text collision box based on text-rotation valueAlexander Shalamov2019-08-132-5/+7
|
* [core] Implement support for "text-writing-mode" layout propertyAlexander Shalamov2019-08-1316-107/+343
|
* [core] Add style bindings for "text-writing-mode" layout propertyAlexander Shalamov2019-08-137-2/+50
|
* Changelog entries and a nit for #15281Aleksandar Stojiljkovic2019-08-081-1/+1
|
* [core] Reuse flyTo constant screen velocity calculation for easeTo ↵Aleksandar Stojiljkovic2019-08-082-18/+26
| | | | | | | | | | | | | implementation. When using flyTo for easeTo: Limit zoom out to min(startZoom, targetZoom). Reduce cinematic zoom in animation at the end of transition, Linear zoom interpolation. The patch also sets linear interpolation for flyTo edgeInsets animation, as it looks more appropriate to follow the approach taken for pitch and bearing. Fixes: #15144
* [core] easeTo: linear interpolation over zoom instead of scaleAleksandar Stojiljkovic2019-08-081-6/+5
| | | | Fixes: 15144
* [core] Enable opaque pass for background layer. fix heatmap+background test.Aleksandar Stojiljkovic2019-08-052-12/+21
| | | | | | Follow the approach from mapbox-gl-js for enabling opaque pass for background layer (same as for fill layer). Fix combinations/heatmap-translucent--background-opaque render test.
* [core] Remove ProjectedCollisionBox from CollisionBoxMikhail Pozdnyakov2019-08-057-64/+91
| | | | | - Minus 20 bytes from CollisionBox size. - Fix constness at Placement::placeBucket
* [core] Introduce ProjectedCollisionBox typeMikhail Pozdnyakov2019-08-055-60/+83
| | | | | | ProjectedCollisionBox encapsulates geometry of the projected collision box, it is using union and thus provides memory save - 12 bytes per collision box instance.
* [core] Remove unused CollisionBox::offsetMikhail Pozdnyakov2019-08-052-8/+9
|
* [core] Fix using of uninitialized circle in collision indexMikhail Pozdnyakov2019-08-051-3/+6
| | | | | In `CollisionIndex::placeLineFeature()` check that previous circle was initialized before asking its center coordinates.
* [core] Increase round join approximation precisionAlexander Shalamov2019-08-051-1/+1
|
* [core] A more accurate algorithm for approximating round line joinsAlexander Shalamov2019-08-051-17/+25
| | | | Port for https://github.com/mapbox/mapbox-gl-js/pull/8275
* [core] Fix render tile set source updateMikhail Pozdnyakov2019-08-011-1/+1
| | | | | | Before this change, the `RenderTileSetSource` implementation ignored update calls for the sources whose description was not yet loaded and it lead to missing of relayout requests.
* [core] Limit pitch based on edge insets. Fix max Z calculation in getProjMatrix.Aleksandar Stojiljkovic2019-08-013-16/+38
| | | | | | | | | | | | | Patch partly fixes #15163 in a way that it doesn't allow loading tens of thousands of tiles and attempt to show area above horizon: Limit pitch based on edge insets. It is not too bad - current limit of 60 degrees stays active until center of perspective is moved towards the bottom, to 84% of screen height. The plan is to split removal of 60 degrees limit to follow up patch. Fix max Z calculation in getProjMatrix. TransformState::getProjMatrix calculation of farZ was complex with possibility to lead to negative z values. Replacing it with simpler, precise calculation: furthestDistance = cameraToCenterDistance / (1 - tanFovAboveCenter * std::tan(getPitch())); TransformState::getProjMatrix calculation of farZ was an aproximation. Replacing it with simpler, but precise calculation. Related to: #15163
* [core] Fix int overflow issue in GridIndexAlexander Shalamov2019-07-302-16/+18
|
* [build] Use mapbox-base optionalBruno de Oliveira Abinader2019-07-292-6/+4
|
* [core] Shrink RenderOrchestrator::filteredLayersForSource in reduceMemoryUse()Mikhail Pozdnyakov2019-07-291-3/+1
| | | | | Before this change, `RenderOrchestrator::filteredLayersForSource` shrank inside `createRenderTree()`, which potentially might have affected rendering performance.
* [core] Fix assertion at RenderRasterLayer::prepare()Mikhail Pozdnyakov2019-07-262-2/+5
| | | | | It shall consider that image data might not be available until the source loads it.
* [core] Avoid copying feature propertiesMikhail Pozdnyakov2019-07-258-8/+18
|
* [core] Simplfy ToGeometryCollectionMikhail Pozdnyakov2019-07-251-32/+7
|
* [core] Optimize Query Rendered Features APIMikhail Pozdnyakov2019-07-252-7/+9
| | | | | | | | This PR filters out invisible layers before quering features (rather than after, like it happened before). With this change `API_queryRenderedFeaturesAll` performance test passes almost two times faster.
* [core] GeometryCollection must not be implicitly copiedMikhail Pozdnyakov2019-07-245-15/+21
|
* [core] Optimize RenderLineLayer::queryIntersectsFeatureMikhail Pozdnyakov2019-07-241-11/+24
|
* [core] Default GeometryTileFeature::getGeometries() implementationMikhail Pozdnyakov2019-07-243-4/+6
|
* [core] Force getGeometries() return const refAlexander Shalamov2019-07-2412-24/+32
|
* [core] Introduce VertexVector::extend() and use it in placement code.Mikhail Pozdnyakov2019-07-232-46/+44
|
* [core] Remove unused field from icon bufferAlexander Shalamov2019-07-231-1/+0
|
* [core] Release quad data after vertex buffers are createdAlexander Shalamov2019-07-235-97/+180
|
* [core] SymbolBacket creates collision buffers optionallyMikhail Pozdnyakov2019-07-225-40/+52
| | | | sizeof(SymbolBucket) : 1024 -> 704
* [core] Symbol bucket uses shared layoutMikhail Pozdnyakov2019-07-226-91/+93
| | | | sizeof(SymbolBucket): 2296 -> 1024
* [core] sizeof(SymbolBucket) 2312 -> 2296Mikhail Pozdnyakov2019-07-222-15/+22
|
* [core] Introduce RenderTileSetSource classMikhail Pozdnyakov2019-07-228-125/+132
| | | | Encapsulates the tiles update logic based on the given tile set.
* [core] Avoid unneeded tile sets copying at sources codeMikhail Pozdnyakov2019-07-229-33/+22
|
* [core] Render sources keep the existing tiles until the new tileset is readyMikhail Pozdnyakov2019-07-223-12/+24
| | | | | In Continuous map mode, keep the existing tiles if the new tileset is not yet available, thus providing smart style transitions without flickering.
* [core] Do not try to place a center anchor beyond the center of the lineThiago Marcos P. Santos2019-07-191-0/+2
| | | | | | | | | | Once the algorithm finds the center of the line, if placement is not possible, do not place the anchor. Previous code was trying to continue place the label beyond the center of the segment. Fixes #15139.
* Fix wrong #15065 nit fixAleksandar Stojiljkovic2019-07-191-2/+4
| | | | | | | Change in https://github.com/mapbox/mapbox-gl-native/pull/15065/commits/3ffc14a3250e5c4eb7dcaf0d1cc0e95c9de3c014 was a typo while addresssing review nit: while it didn't affect render tests it doesn't work properly in all cases. Fixes: #14844, #14779, #15039
* [core] Fix collision with content insetsAleksandar Stojiljkovic2019-07-173-14/+12
| | | | | | | | | | | | | | | Viewport center offset usage was wrongly submitted in #14664. It was part of alternative approach that used enlarged viewport. Existing and added tests were not sufficient to spot the regression, since the collision check padding is usually larger than the center offset x and y. Annotation picking has tolerance of only 10 pixels but no annotation integration test was using content insets. Usage of offset is not needed because `posMatrix` in e.g. `CollisionIndex::projectPoint(const mat4& posMatrix, const Point<float>& point)` already incorporates center offset (projection matrix) and the code in current master was just offsetting all by the value. Modified [ios] MGLAnnotationViewIntegrationTests.testSelectingAnnotationWithCenterOffset to use different insets. It verifies the fix. Fixes [iOS] Annotations are not selectable (added via iosapp menu) #15106: In case of #15106, view's original content insets is {top:88, bottom:34}, causing that center offset is {x:0, y:27} and selection with tolerance of 10 wouldn't select annotation. After tapping the view, so that the header gets removed, view's content insets get changed to {top:44, bottom:34}, center offset is {x:0, y:5} and annotation selection would work, as described in #15106. Fixes: #15106
* [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] RenderCustomGeometrySource should clear tiles after style updateMikhail Pozdnyakov2019-07-121-1/+4
| | | | Otherwise, the remaining stale tiles cannot be updated.
* [core] Synchronize render passes and render tilesMikhail Pozdnyakov2019-07-1112-22/+47
| | | | | | | | | | | | | | | | Before this change render passes were assigned for the whole layer at properties evaluation stage. This caused problems, as layer render data are bound to the tile and these data might differ from tile to tile, depending on which tile has been updated by the tile worker and which has not been yet updated. This change takes into consideration the actual render passes required for each tile and combines them for the layer render passes. Naturally, this change also introduces render pass check for each render layer in `RenderLayer::render()` implementations.
* [core] decrease the minimum pixel distance required to interpolate during ↵Łukasz Paczos2019-07-091-1/+1
| | | | | | camera animation The changes introduced in #9199 changed the minimum required pixel distance between start and end points to >= 1px in order to interpolate, which in scenarios of big zoom changes and low pixel density can result in animation to the previous position and then a jump to the target.