summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/layers/render_heatmap_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_heatmap_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_heatmap_layer.cpp')
-rw-r--r--src/mbgl/renderer/layers/render_heatmap_layer.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/mbgl/renderer/layers/render_heatmap_layer.cpp b/src/mbgl/renderer/layers/render_heatmap_layer.cpp
index 83a989195b..1f3c179acc 100644
--- a/src/mbgl/renderer/layers/render_heatmap_layer.cpp
+++ b/src/mbgl/renderer/layers/render_heatmap_layer.cpp
@@ -59,7 +59,7 @@ void RenderHeatmapLayer::render(PaintParameters& parameters, RenderSource*) {
if (parameters.pass == RenderPass::Opaque) {
return;
}
- const auto& evaluated = static_cast<const HeatmapLayerProperties&>(*evaluatedProperties).evaluated;
+
if (parameters.pass == RenderPass::Pass3D) {
const auto& viewportSize = parameters.staticData.backendSize;
const auto size = Size{viewportSize.width / 4, viewportSize.height / 4};
@@ -89,11 +89,12 @@ void RenderHeatmapLayer::render(PaintParameters& parameters, RenderSource*) {
"heatmap texture", { *renderTexture, Color{ 0.0f, 0.0f, 0.0f, 1.0f }, {}, {} });
for (const RenderTile& tile : renderTiles) {
- auto bucket_ = tile.tile.getBucket<HeatmapBucket>(*baseImpl);
- if (!bucket_) {
+ const LayerRenderData* renderData = tile.tile.getLayerRenderData(*baseImpl);
+ if (!renderData) {
continue;
}
- HeatmapBucket& bucket = *bucket_;
+ auto& bucket = static_cast<HeatmapBucket&>(*renderData->bucket);
+ const auto& evaluated = getEvaluated<HeatmapLayerProperties>(renderData->layerProperties);
const auto extrudeScale = tile.id.pixelsToTileUnits(1, parameters.state.getZoom());
@@ -155,7 +156,7 @@ void RenderHeatmapLayer::render(PaintParameters& parameters, RenderSource*) {
HeatmapTextureProgram::LayoutUniformValues{
uniforms::matrix::Value( viewportMat ),
uniforms::world::Value( size ),
- uniforms::opacity::Value( evaluated.get<HeatmapOpacity>() )
+ uniforms::opacity::Value( getEvaluated<HeatmapLayerProperties>(evaluatedProperties).get<HeatmapOpacity>() )
},
paintAttributeData,
properties,