summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/layers/render_symbol_layer.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-07-10 17:53:35 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-07-18 16:24:12 +0300
commit6b4fecf0e93d979297d998b10bcfcc0521fa3656 (patch)
tree917e94e85c50f759091a8de2edf1a4c055104038 /src/mbgl/renderer/layers/render_symbol_layer.cpp
parentacdf3b43980875403f6059e45d70f372179de138 (diff)
downloadqtlocation-mapboxgl-upstream/mikhail_cp_nectar_15092.tar.gz
[core][cp] Backport #15092 to nectarupstream/mikhail_cp_nectar_15092
Backports #15092 to release-nectar.
Diffstat (limited to 'src/mbgl/renderer/layers/render_symbol_layer.cpp')
-rw-r--r--src/mbgl/renderer/layers/render_symbol_layer.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp
index 576bdd92d8..7d23a16c91 100644
--- a/src/mbgl/renderer/layers/render_symbol_layer.cpp
+++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp
@@ -400,7 +400,7 @@ void RenderSymbolLayer::evaluate(const PropertyEvaluationParameters& parameters)
passes = ((evaluated.get<style::IconOpacity>().constantOr(1) > 0 && hasIconOpacity && iconSize > 0)
|| (evaluated.get<style::TextOpacity>().constantOr(1) > 0 && hasTextOpacity && textSize > 0))
? RenderPass::Translucent | RenderPass::Upload : RenderPass::None;
-
+ properties->renderPasses = mbgl::underlying_type(passes);
evaluatedProperties = std::move(properties);
}
@@ -525,7 +525,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) {
};
for (const RenderTile& tile : renderTiles) {
- const LayerRenderData* renderData = tile.tile.getLayerRenderData(*baseImpl);
+ const LayerRenderData* renderData = getRenderDataForPass(tile, parameters.pass);
if (!renderData) {
continue;
}
@@ -670,6 +670,7 @@ style::TextPaintProperties::PossiblyEvaluated RenderSymbolLayer::textPaintProper
void RenderSymbolLayer::setRenderTiles(RenderTiles tiles, const TransformState& state) {
renderTiles = std::move(tiles);
+ addRenderPassesFromTiles();
// Sort symbol tiles in opposite y position, so tiles with overlapping symbols are drawn
// on top of each other, with lower symbols being drawn on top of higher symbols.
std::sort(renderTiles.begin(), renderTiles.end(), [&state](const auto& a, const auto& b) {