| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This change also uses the support in the LocationIndicator layer, to
return a point feature when queried in correspondence of the location
indicator.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
fix #15964
partially port mapbox/mapbox-gl-js#9054
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
Now `RenderLayer::upload()` accepts only `uploadPass`, similar to other uploadable objects.
Few simplifications were made in the `LineLayer` prepare stage.
|
| |
|
| |
|
| |
|
|
|
|
| |
render(PaintParameters)
|
|
|
|
|
|
|
| |
prepare(LayerPrepareParameters)
RenderLayer::prepare() is responsible for the complete initialization of a render
layer, so that it can render.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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()`.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Obviate few extra calls from the renderer impl parts initializing symbol layers.
|
|
|
|
| |
This is a step to stop using of render layers in tile worker thread.
|
|
|
|
|
|
|
|
|
| |
Before this change, `RenderSymbolLayer` with updated style was trying to render
symbols using the previous bucket (with paint property binders that matched a previous program).
Now, symbol bucket caches the latest corresponding paint properties (caching is happening on
complete tiles only). As a result, `RenderSymbolLayer` always picks the shader program and
its parameters in sync with the obtained bucket.
|
|
|
|
|
| |
Drop LayerType and its remaining usages.
The generic code should be layer type agnostic.
|
|
|
|
|
|
|
|
| |
`LayerManager` is now responsible for `RenderLayer` instances creation,
so that there is a single entry point for creating of objects, which
correspond to a certain layer type.
The `LayerType type` field is dropped from `Layer::Impl`.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
expressions in `*-pattern` properties
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
# Conflicts:
# mapbox-gl-js
# platform/android/CHANGELOG.md
# platform/android/MapboxGLAndroidSDK/gradle.properties
# platform/android/gradle/dependencies.gradle
# platform/darwin/src/MGLVectorTileSource.mm
# platform/darwin/src/MGLVectorTileSource_Private.h
# platform/ios/CHANGELOG.md
# src/mbgl/style/expression/compound_expression.cpp
|
| | |
|
|/
|
|
|
|
|
| |
This fixes circle querying for cases where either
circle-pitch-alignment=map
or
circle-pitch-scaling=viewport
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Background placement code now just generates static symbol buffers
- Don't render GeometryTiles until their symbols are loaded. This is necessary for the CrossTileSymbolIndex to successfully prevent flicker.
- SymbolInstances are transferred to SymbolBucket for use on foreground during collision detection
- Symbols are sorted on foreground by sorting their index buffer but leaving vertex buffers intact (only works within one segment)
- Vertical glyphs are generated at same time as horizontal glyphs. `reprojectLineLabels` chooses which one to use at render time and hides the other.
- Icons are now always represented with a single collision box, even if they're placed along a line (this means their rotation alignment may be wrong, but the approach of representing them with multiple collision boxes wasn't very accurate either).
- Generate vertices for new debug collision boxes and collision circles
- Only add symbols within tile boundaries (reduces work, avoids double-draw)
- Update symbol_projection.cpp to support line label projection calls from CollisionIndex.
|
| |
|
| |
|