summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer
Commit message (Collapse)AuthorAgeFilesLines
* [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] Optimize RenderLineLayer::queryIntersectsFeatureMikhail Pozdnyakov2019-07-241-11/+24
|
* [core] Force getGeometries() return const refAlexander Shalamov2019-07-241-1/+1
|
* [core] Remove unused field from icon bufferAlexander Shalamov2019-07-231-1/+0
|
* [core] SymbolBacket creates collision buffers optionallyMikhail Pozdnyakov2019-07-223-22/+34
| | | | sizeof(SymbolBucket) : 1024 -> 704
* [core] Symbol bucket uses shared layoutMikhail Pozdnyakov2019-07-223-7/+7
| | | | 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-223-15/+15
|
* [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.
* 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] 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] 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-0913-28/+40
| | | | | - 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-0413-106/+140
|
* [core] Remove down-casting of render sourcesMikhail Pozdnyakov2019-07-049-49/+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-045-21/+40
|
* [core] Introduce ImageManager::getSharedImageMikhail Pozdnyakov2019-07-042-1/+9
|
* [core] Introduce TileRenderDataMikhail Pozdnyakov2019-07-045-15/+127
| | | | Remove rendering functionality from Tile implementations.
* [core] Remove orchestration methods from RenderTileMikhail Pozdnyakov2019-07-0411-32/+39
|
* [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-021-6/+1
| | | | | | 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 RenderOrchestratorMikhail Pozdnyakov2019-06-255-705/+781
|
* [core] Introduce RenderTreeMikhail Pozdnyakov2019-06-255-93/+242
| | | | 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.
* [core] Change severity of too many data-driven properties to "Info"Thiago Marcos P. Santos2019-06-151-13/+13
| | | | So it can be filtered by the SDKs using a Log::Observer.
* [core] don't call glFlush on every frameKonstantin Käfer2019-06-121-1/+1
|
* [core] TilePyramind uses TransformState::getScale()Mikhail Pozdnyakov2019-06-102-1/+2
|
* [core] TilePyramid::getRenderTiles -> getRenderedTilesMikhail Pozdnyakov2019-06-109-10/+10
|
* [core] Refactor tile pyramidMikhail Pozdnyakov2019-06-109-83/+59
| | | | | | | Tile pyramid is no longer operating with `RenderTiles` and does not perform rendering operations (upload, finish render). Render tiles belong to rendering, and tile pyramid belongs to orchestration.
* [core] Use unique ID in hillshade and hillshade_prepare draw.Aleksandar Stojiljkovic2019-06-061-2/+2
|
* [core] Fix symbol rendering under opaque fill layersJuha Alanen2019-06-042-15/+4
|
* [core] Update comments for pattern atlasMikhail Pozdnyakov2019-06-042-5/+5
|
* [core] Introduce PatternAtlasMikhail Pozdnyakov2019-06-0410-164/+215
|
* [core] Remove ImageManager from upload parametersMikhail Pozdnyakov2019-06-047-21/+16
|
* [core] fix warnings with Xcode 11's updated Clang versionKonstantin Käfer2019-06-041-1/+1
|
* [core] Use fresh transform state for bucket vertices update in placementMikhail Pozdnyakov2019-06-034-6/+7
| | | | 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-031-3/+6
|
* [core] Fix: fill-extrusion-vertical-gradient was ignored. #14784Aleksandar Stojiljkovic2019-05-311-2/+4
| | | | | | fill-extrusion-vertical-gradient "property-type": "data-constant" and it shouldn't be computed through property binders. Fixes: #14784
* [core] Introduce RenderTileSourceMikhail Pozdnyakov2019-05-2912-358/+148
| | | | | | | RenderTileSource is a base class for the render sources that provide render tiles. * Removes repeated code * Simplifies render source code refactoring and improves readability