From 39e1c86ae94f150b5d2a9687ebdd91647c87d11d Mon Sep 17 00:00:00 2001 From: Petr Pokorny Date: Sun, 28 Feb 2021 19:01:03 +0100 Subject: [PATCH 1/2] 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) { From 1b0479c6e586ba797f9420bf102e8d4153494b40 Mon Sep 17 00:00:00 2001 From: Petr Pokorny Date: Sun, 28 Feb 2021 19:24:01 +0100 Subject: [PATCH 2/2] Changelog update --- platform/android/CHANGELOG.md | 4 ++++ platform/ios/platform/ios/CHANGELOG.md | 1 + 2 files changed, 5 insertions(+) diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index 365a63d9b..051dda106 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -6,6 +6,10 @@ Mapbox welcomes participation and contributions from everyone. Please read [`Con ### Features +### Bug Fixes + +* Fixed an issue where symbols flickered when zooming out. [#16](https://github.com/maplibre/maplibre-gl-native/issues/16) + ### Other * mapbox-gl-js submodule has been replaced with maplibre-gl-js diff --git a/platform/ios/platform/ios/CHANGELOG.md b/platform/ios/platform/ios/CHANGELOG.md index 358ece1f6..4baf6ce3b 100644 --- a/platform/ios/platform/ios/CHANGELOG.md +++ b/platform/ios/platform/ios/CHANGELOG.md @@ -17,6 +17,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT ### Bug Fixes * Fixed an issue that caused a crash when custom location managers did not implement `MGLLocationManager.accuracyAuthorization`. (cherry pick from [#474](https://github.com/mapbox/mapbox-gl-native-ios/pull/474)) +* Fixed an issue where symbols flickered when zooming out. [#16](https://github.com/maplibre/maplibre-gl-native/issues/16) ### Other