summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Loer <chris.loer@gmail.com>2017-11-07 17:38:38 -0800
committerChris Loer <chris.loer@gmail.com>2017-11-07 17:38:38 -0800
commit90f6a234d2b866af8884f2c3d8fc485fb379a16a (patch)
tree8a0b84e8d3ea533fe30ea23afed3c6c48caa62e5
parent6d6d1fcacff7270a37b3dd53f0259a1d0aabc31a (diff)
downloadqtlocation-mapboxgl-90f6a234d2b866af8884f2c3d8fc485fb379a16a.tar.gz
'make test-node-recycle-map' fails if the cross tile symbol index is re-used, so this commit clears it out for each still frame.
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp4
-rw-r--r--src/mbgl/text/cross_tile_symbol_index.cpp5
-rw-r--r--src/mbgl/text/cross_tile_symbol_index.hpp2
3 files changed, 11 insertions, 0 deletions
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp
index 8c19ebe73e..af0c491e15 100644
--- a/src/mbgl/renderer/renderer_impl.cpp
+++ b/src/mbgl/renderer/renderer_impl.cpp
@@ -366,6 +366,10 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
}
bool symbolBucketsChanged = false;
+ if (parameters.mapMode == MapMode::Still) {
+ // TODO: Think about right way for symbol index to handle still rendering
+ crossTileSymbolIndex->reset();
+ }
for (auto it = order.rbegin(); it != order.rend(); ++it) {
if (it->layer.is<RenderSymbolLayer>()) {
if (crossTileSymbolIndex->addLayer(*it->layer.as<RenderSymbolLayer>())) symbolBucketsChanged = true;
diff --git a/src/mbgl/text/cross_tile_symbol_index.cpp b/src/mbgl/text/cross_tile_symbol_index.cpp
index 8655e45804..779bec283c 100644
--- a/src/mbgl/text/cross_tile_symbol_index.cpp
+++ b/src/mbgl/text/cross_tile_symbol_index.cpp
@@ -158,5 +158,10 @@ bool CrossTileSymbolIndex::addLayer(RenderSymbolLayer& symbolLayer) {
}
return symbolBucketsChanged;
}
+
+void CrossTileSymbolIndex::reset() {
+ layerIndexes.clear();
+}
+
} // namespace mbgl
diff --git a/src/mbgl/text/cross_tile_symbol_index.hpp b/src/mbgl/text/cross_tile_symbol_index.hpp
index a9e1356059..0b8c5c4780 100644
--- a/src/mbgl/text/cross_tile_symbol_index.hpp
+++ b/src/mbgl/text/cross_tile_symbol_index.hpp
@@ -58,6 +58,8 @@ class CrossTileSymbolIndex {
CrossTileSymbolIndex();
bool addLayer(RenderSymbolLayer&);
+
+ void reset();
private:
std::map<std::string,CrossTileSymbolLayerIndex> layerIndexes;
};