From 39e1c86ae94f150b5d2a9687ebdd91647c87d11d Mon Sep 17 00:00:00 2001 From: Petr Pokorny Date: Sun, 28 Feb 2021 19:01:03 +0100 Subject: [PATCH] fixes #16 --- src/mbgl/renderer/layers/render_symbol_layer.cpp | 3 ++- src/mbgl/text/placement.cpp | 14 +++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp index 1d8c0a70a..d70d10d6f 100644 --- a/src/mbgl/renderer/layers/render_symbol_layer.cpp +++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp @@ -424,7 +424,8 @@ void RenderSymbolLayer::render(PaintParameters& parameters) { assert(bucket.paintProperties.find(getID()) != bucket.paintProperties.end()); const auto& bucketPaintProperties = bucket.paintProperties.at(getID()); - bucket.justReloaded = false; + // Prevent a flickering issue when a symbol is moved. + // bucket.justReloaded = false; auto addRenderables = [&renderableSegments, &tile, renderData, &bucketPaintProperties, it = renderableSegments.begin()] (auto& segments, const SymbolType type) mutable { for (auto& segment : segments) { diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp index f98039dec..c3072b05c 100644 --- a/src/mbgl/text/placement.cpp +++ b/src/mbgl/text/placement.cpp @@ -241,9 +241,16 @@ void Placement::placeSymbolBucket(const BucketPlacementData& params, std::setget()), - iconAllowOverlap && (textAllowOverlap || !bucket.hasTextData() || bucket.layout->get()), + bucket.justReloaded && textAllowOverlap && (iconAllowOverlap || !(bucket.hasIconData() || bucket.hasSdfIconData()) || bucket.layout->get()), + bucket.justReloaded && iconAllowOverlap && (textAllowOverlap || !bucket.hasTextData() || bucket.layout->get()), true); for (SymbolInstance& symbolInstance : bucket.symbolInstances) {