| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
It shall consider that image data might not be available until
the source loads it.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
sizeof(SymbolBucket) : 1024 -> 704
|
|
|
|
| |
sizeof(SymbolBucket): 2296 -> 1024
|
| |
|
|
|
|
| |
Encapsulates the tiles update logic based on the given tile set.
|
| |
|
|
|
|
|
| |
In Continuous map mode, keep the existing tiles if the new tileset is not
yet available, thus providing smart style transitions without flickering.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
options
Port of https://github.com/mapbox/mapbox-gl-js/pull/8473
|
|
|
|
| |
Otherwise, the remaining stale tiles cannot be updated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
This helps to avoid unneeded allocations.
|
| |
|
|
|
|
|
| |
- query rendered symbols only from layers that support it
- remove unnecessary iterations over vectors
|
|
|
|
| |
This reverts commit 2125080dc34381e7458695ed584ea94398d0e9b2.
|
| |
|
| |
|
|
|
|
|
| |
Image source render data is owned by render source, which is simpler than the
previous approach and aligned with the render tiles ownership model.
|
| |
|
| |
|
|
|
|
| |
Remove rendering functionality from Tile implementations.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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).
|
|
|
|
| |
Fixes #14993
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Split orchestration from rendering in the `Renderer::Impl` implementation.
|
| |
|