summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/layers/render_line_layer.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-04-11 17:07:14 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-04-17 17:21:41 +0300
commit858097102d9f586e17b118532213e38262e801db (patch)
treec8ce8835e6a39b0a4437b6a14c505b3fe9ffdfa1 /src/mbgl/renderer/layers/render_line_layer.cpp
parentb96d824b2de44d210a8e06fc7c6c4f05c4e98fe2 (diff)
downloadqtlocation-mapboxgl-858097102d9f586e17b118532213e38262e801db.tar.gz
[core] Render layers use synchronized buckets and paint properties
Actual for layers rendering the geometry tile data: line, fill, fill-extrusion, heatmap, circle, symbol (was updated in previous commits).
Diffstat (limited to 'src/mbgl/renderer/layers/render_line_layer.cpp')
-rw-r--r--src/mbgl/renderer/layers/render_line_layer.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp
index 2a7468ca1f..8fbe799f17 100644
--- a/src/mbgl/renderer/layers/render_line_layer.cpp
+++ b/src/mbgl/renderer/layers/render_line_layer.cpp
@@ -54,22 +54,22 @@ bool RenderLineLayer::hasTransition() const {
}
bool RenderLineLayer::hasCrossfade() const {
- return static_cast<const LineLayerProperties&>(*evaluatedProperties).crossfade.t != 1;
+ return getCrossfade<LineLayerProperties>(evaluatedProperties).t != 1;
}
void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) {
if (parameters.pass == RenderPass::Opaque) {
return;
}
- const auto& evaluated = static_cast<const LineLayerProperties&>(*evaluatedProperties).evaluated;
- const auto& crossfade = static_cast<const LineLayerProperties&>(*evaluatedProperties).crossfade;
for (const RenderTile& tile : renderTiles) {
- auto bucket_ = tile.tile.getBucket<LineBucket>(*baseImpl);
- if (!bucket_) {
+ const LayerRenderData* renderData = tile.tile.getLayerRenderData(*baseImpl);
+ if (!renderData) {
continue;
}
- LineBucket& bucket = *bucket_;
+ auto& bucket = static_cast<LineBucket&>(*renderData->bucket);
+ const auto& evaluated = getEvaluated<LineLayerProperties>(renderData->layerProperties);
+ const auto& crossfade = getCrossfade<LineLayerProperties>(renderData->layerProperties);
auto draw = [&](auto& programInstance,
auto&& uniformValues,
@@ -134,7 +134,7 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) {
});
} else if (!unevaluated.get<LinePattern>().isUndefined()) {
- const auto linePatternValue = evaluated.get<LinePattern>().constantOr(Faded<std::basic_string<char>>{ "", ""});
+ const auto& linePatternValue = evaluated.get<LinePattern>().constantOr(Faded<std::basic_string<char>>{ "", ""});
auto& geometryTile = static_cast<GeometryTile&>(tile.tile);
const Size texsize = geometryTile.iconAtlasTexture->size;