summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/render_layer.hpp
Commit message (Collapse)AuthorAgeFilesLines
* Introduce a mean to add render features in layers with no sourcesGali Nelle2020-04-171-0/+3
| | | | | | This change also uses the support in the LocationIndicator layer, to return a point feature when queried in correspondence of the location indicator.
* [core] Introduce Placement::placeLayers()Mikhail Pozdnyakov2020-03-251-0/+2
|
* [core] Drop BucketPlacementParametersMikhail Pozdnyakov2020-03-031-0/+1
|
* [core] Split LayerPlacementData and BucketPlacementDataMikhail Pozdnyakov2020-03-031-3/+5
|
* [core] Get rid of LayerPlacementData::firstInBucketMikhail Pozdnyakov2020-03-031-1/+1
|
* [core] Encapsulate placement code handling symbols sort rangesMikhail Pozdnyakov2020-03-031-6/+8
|
* [core] sort symbols using symbol-sort-key before placement (#16023)Ansis Brammanis2020-02-111-5/+11
| | | | fix #15964 partially port mapbox/mapbox-gl-js#9054
* [build] Fix clang format and tidy checksJuha Alanen2019-09-181-8/+4
|
* [core] Feature state support to RenderLayer classesJuha Alanen2019-09-181-1/+2
|
* [core] Synchronize render passes and render tilesMikhail Pozdnyakov2019-07-111-0/+4
| | | | | | | | | | | | | | | | 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.
* Fix layers rendering after fill-extrusionAleksandar Stojiljkovic2019-07-091-0/+3
| | | | | | | | | | | | | | | | | | | | | 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-091-4/+1
| | | | This helps to avoid unneeded allocations.
* [core] RenderSource creates render itemsMikhail Pozdnyakov2019-07-041-2/+3
|
* [core] Remove orchestration methods from RenderTileMikhail Pozdnyakov2019-07-041-0/+1
|
* [core] Simplify RenderLayer::upload()Mikhail Pozdnyakov2019-06-251-1/+3
| | | | | | Now `RenderLayer::upload()` accepts only `uploadPass`, similar to other uploadable objects. Few simplifications were made in the `LineLayer` prepare stage.
* [core] Introduce PatternAtlasMikhail Pozdnyakov2019-06-041-0/+2
|
* [core] Remove ImageManager from upload parametersMikhail Pozdnyakov2019-06-041-0/+1
|
* [core] Encapsulate symbol bucket placement code in Placement::placeLayerBucket()Mikhail Pozdnyakov2019-05-281-3/+0
|
* [core] RenderLayer::render(PaintParameters, RenderSource*) -> ↵Mikhail Pozdnyakov2019-05-221-1/+1
| | | | render(PaintParameters)
* [core] RenderLayer::setRenderTiles(RenderTiles) -> ↵Mikhail Pozdnyakov2019-05-221-2/+8
| | | | | | | prepare(LayerPrepareParameters) RenderLayer::prepare() is responsible for the complete initialization of a render layer, so that it can render.
* [core] Remove RenderLayerSymbolInterfaceMikhail Pozdnyakov2019-05-191-3/+2
|
* [core] Placement accepts RenderLayer instancesMikhail Pozdnyakov2019-05-191-0/+2
|
* [core] RenderLayerSymbolInterface is not used in CrossTileSymbolIndexMikhail Pozdnyakov2019-05-191-1/+14
|
* [core] add gfx::UploadPass, split startRender into prepare and uploadKonstantin Käfer2019-05-151-0/+2
|
* [core] RenderTile shall never be created for a not renderable tileMikhail Pozdnyakov2019-05-141-3/+1
| | | | | | | | 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()`.
* [core] Less strict rules for adding render layers to sourcesMikhail Pozdnyakov2019-04-291-1/+4
|
* [core] Simplify RenderLayer interface.Mikhail Pozdnyakov2019-04-171-6/+3
|
* [core] Update `style::LayerProperties` instances in tilesMikhail Pozdnyakov2019-04-171-5/+0
|
* [core] Introduce `LayerRenderData`. Source::update() accepts layer properties.Mikhail Pozdnyakov2019-04-171-0/+7
|
* [core] Use `style::LayerProperties` in render layers, buckets and layouts.Mikhail Pozdnyakov2019-04-171-3/+5
|
* [core] Simplify render symbol layer initializationMikhail Pozdnyakov2019-04-021-4/+1
| | | | Obviate few extra calls from the renderer impl parts initializing symbol layers.
* [core] Layer manager is responsible for buckets and layouts creationMikhail Pozdnyakov2019-02-251-9/+0
| | | | This is a step to stop using of render layers in tile worker thread.
* [core] shader program must always match bucket in render symbol layerMikhail Pozdnyakov2019-01-111-0/+4
| | | | | | | | | 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.
* [core] Drop LayerTypeMikhail Pozdnyakov2019-01-041-1/+0
| | | | | Drop LayerType and its remaining usages. The generic code should be layer type agnostic.
* [core][Android][Darwin] LayerManager creates RenderLayer instancesMikhail Pozdnyakov2018-11-271-7/+1
| | | | | | | | `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`.
* [core] Remove RenderLayer's is<> as<> methodsAlexander Shalamov2018-11-191-15/+0
|
* [core] Replace RenderSymbolLayer downcast with symbol interfaceAlexander Shalamov2018-11-191-4/+4
|
* [core] Remove casts for Custom and Background render layersAlexander Shalamov2018-11-191-0/+3
|
* [core] Move layer specific color ramp updates behind common update() methodAlexander Shalamov2018-11-191-0/+7
|
* [core] Move RenderTile filtering / sorting logic to render layersAlexander Shalamov2018-11-191-2/+11
|
* [core] Move markContextDestroyed() to the RenderLayerAlexander Shalamov2018-11-191-1/+1
|
* [core] simplify dependency layout process and refactor data structuresMolly Lloyd2018-08-311-2/+8
|
* [core] Implement CrossFadedDataDrivenProperty to add support for feature ↵Molly Lloyd2018-08-311-0/+3
| | | | expressions in `*-pattern` properties
* Merge branch 'release-boba' into masterupstream/fabian-merge-release-4.0.1-masterFabian Guerra2018-05-171-0/+11
|\ | | | | | | | | | | | | | | | | | | | | | | # 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
| * [core] Don't crash when attribute count is exceededKonstantin Käfer2018-05-031-0/+11
| |
* | [core] fix circle querying for scale and alignmentChris Loer2018-04-261-1/+4
|/ | | | | | | This fixes circle querying for cases where either circle-pitch-alignment=map or circle-pitch-scaling=viewport
* [core] Cleanup in response to review comments.Chris Loer2017-11-171-1/+5
|
* [core] Switch from background to foreground placementChris Loer2017-11-171-4/+3
| | | | | | | | | | | | - 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.
* [core] Refactor Painter awayJohn Firebaugh2017-07-191-2/+1
|
* [core] Eliminate Bucket::renderJohn Firebaugh2017-07-191-1/+1
|