summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* wipupstream/lp-move-15110Łukasz Paczos2019-07-261-2/+2
|
* [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.
* [core] Put gfx backend scope guard to Renderer::reduceMemoryUse()Mikhail Pozdnyakov2019-07-091-0/+1
|
* Issue #15065 changelogs and nit fix.Aleksandar Stojiljkovic2019-07-091-5/+6
|
* Fix layers rendering after fill-extrusionAleksandar Stojiljkovic2019-07-0910-15/+31
| | | | | | | | | | | | | | | | | | | | | This fixes following issues: * Fix some false passing combinations/fill-extrusion-translucent--XXXX tests * Fix and enable other, failing but ignored, combinations/fill-extrusion-translucent--XXXX tests * Fix rendering of layers that are on top of fill-extrusion layers state.getProjMatrix(nearClippedProjMatrix, 100) caused that tests with size 64x64 were not rendering fill extrusions: far plane calculated as 96.9 and near plane set to 100 was the cause. near plane is changed from hardcoded 100 to depend on state.getCameraToCenterDistance() - producing similar value but one that follows max zoom. This caused that e.g. combinations/fill-extrusion-translucent--fill-opaque was falsely passing as only fill-opaque layer got rendered. combinations/fill-extrusion-translucent--XXXX tests expose regression https://github.com/mapbox/mapbox-gl-native/issues/14844#issuecomment-503600034 in #14844, #14779. Fix (opaquePassCutoff, is3D) is ported from https://github.com/mapbox/mapbox-gl-js/pull/7821 Fixes: #14844, #14779, #15039
* [core] Share render tiles lists between layersMikhail Pozdnyakov2019-07-0915-58/+87
| | | | This helps to avoid unneeded allocations.
* [core] Reserve size for filtered render layersAlexander Shalamov2019-07-092-2/+17
|
* [core] Improve performance for query rendered featuresAlexander Shalamov2019-07-0921-58/+63
| | | | | - query rendered symbols only from layers that support it - remove unnecessary iterations over vectors
* Revert "[core] Change severity of too many data-driven properties to "Info""Thiago Marcos P. Santos2019-07-081-13/+13
| | | | This reverts commit 2125080dc34381e7458695ed584ea94398d0e9b2.
* [core] RenderSource creates render itemsMikhail Pozdnyakov2019-07-0414-107/+141
|
* [core] Remove down-casting of render sourcesMikhail Pozdnyakov2019-07-0410-54/+10
|
* [core] Introduce ImageSourceRenderData and RenderSource::getImageRenderData()Mikhail Pozdnyakov2019-07-045-36/+45
| | | | | Image source render data is owned by render source, which is simpler than the previous approach and aligned with the render tiles ownership model.
* [core] ImageManager is not used at tile upload stageMikhail Pozdnyakov2019-07-046-29/+58
|
* [core] Introduce ImageManager::getSharedImageMikhail Pozdnyakov2019-07-042-1/+9
|
* [core] Introduce TileRenderDataMikhail Pozdnyakov2019-07-0413-123/+260
| | | | Remove rendering functionality from Tile implementations.
* [core] Geometry tile keeps layout result as a shared pointerMikhail Pozdnyakov2019-07-043-41/+42
|
* [core] Remove orchestration methods from RenderTileMikhail Pozdnyakov2019-07-0413-33/+42
|
* [core] Remove unused PaintPropertyBinders::constants()Mikhail Pozdnyakov2019-07-021-12/+0
|
* [core] RenderSource does re-layout if layer's data-driven properties change.Mikhail Pozdnyakov2019-07-021-1/+6
|
* [core] Geometry tile updates layer render data if its constants mask remainsMikhail Pozdnyakov2019-07-024-11/+13
| | | | | | Thus, we do not have to wait for tile update completion in case the updated properties have the same constants mask, i.e. fit the existing bucket.
* [core] Introduce LayerProperties::constantsMask()Mikhail Pozdnyakov2019-07-0221-0/+82
| | | | | | Constants mask for data-driven paint properties is a reliable criteria of whether the given updated properties can still be used with the existing bucket (and the gl program instance).
* [core] include Hiragana and Katakana glyph ranges to LocalGlyphRasterizerThiago Marcos P. Santos2019-06-281-1/+2
| | | | Fixes #14993
* [core] Add number-format expressionJuha Alanen2019-06-273-0/+219
|
* [core] Fix macOS clang exception error in expression-tests/to-number/2-aryBruno de Oliveira Abinader2019-06-251-1/+1
|
* [core] DefaultFileSource dynamic support for cache-only requestsBruno de Oliveira Abinader2019-06-251-0/+10
|
* [core] Introduce RenderOrchestratorMikhail Pozdnyakov2019-06-256-705/+783
|
* [core] Introduce RenderTreeMikhail Pozdnyakov2019-06-256-93/+243
| | | | Split orchestration from rendering in the `Renderer::Impl` implementation.
* [core] PaintParameters do not need UpdateParametersMikhail Pozdnyakov2019-06-253-10/+17
|
* [core] Remove RenderPass::UploadMikhail Pozdnyakov2019-06-255-8/+4
|
* [core] Simplify RenderLayer::upload()Mikhail Pozdnyakov2019-06-256-34/+25
| | | | | | Now `RenderLayer::upload()` accepts only `uploadPass`, similar to other uploadable objects. Few simplifications were made in the `LineLayer` prepare stage.