summaryrefslogtreecommitdiff
path: root/src/mbgl/text
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/text')
-rw-r--r--src/mbgl/text/cross_tile_symbol_index.cpp12
-rw-r--r--src/mbgl/text/cross_tile_symbol_index.hpp1
2 files changed, 13 insertions, 0 deletions
diff --git a/src/mbgl/text/cross_tile_symbol_index.cpp b/src/mbgl/text/cross_tile_symbol_index.cpp
index 8f4956c4ea..f88bab9d6f 100644
--- a/src/mbgl/text/cross_tile_symbol_index.cpp
+++ b/src/mbgl/text/cross_tile_symbol_index.cpp
@@ -169,6 +169,18 @@ bool CrossTileSymbolIndex::addLayer(RenderSymbolLayer& symbolLayer) {
return symbolBucketsChanged;
}
+void CrossTileSymbolIndex::pruneUnusedLayers(const std::set<std::string>& usedLayers) {
+ std::vector<std::string> unusedLayers;
+ for (auto layerIndex : layerIndexes) {
+ if (usedLayers.find(layerIndex.first) == usedLayers.end()) {
+ unusedLayers.push_back(layerIndex.first);
+ }
+ }
+ for (auto unusedLayer : unusedLayers) {
+ layerIndexes.erase(unusedLayer);
+ }
+}
+
void CrossTileSymbolIndex::reset() {
layerIndexes.clear();
}
diff --git a/src/mbgl/text/cross_tile_symbol_index.hpp b/src/mbgl/text/cross_tile_symbol_index.hpp
index 5abcde241c..541c2e3661 100644
--- a/src/mbgl/text/cross_tile_symbol_index.hpp
+++ b/src/mbgl/text/cross_tile_symbol_index.hpp
@@ -57,6 +57,7 @@ public:
CrossTileSymbolIndex();
bool addLayer(RenderSymbolLayer&);
+ void pruneUnusedLayers(const std::set<std::string>&);
void reset();
private: