diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-07-10 17:53:35 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-07-18 16:24:12 +0300 |
commit | 6b4fecf0e93d979297d998b10bcfcc0521fa3656 (patch) | |
tree | 917e94e85c50f759091a8de2edf1a4c055104038 /src/mbgl/renderer/layers/render_symbol_layer.cpp | |
parent | acdf3b43980875403f6059e45d70f372179de138 (diff) | |
download | qtlocation-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.cpp | 5 |
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) { |