summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r--src/mbgl/renderer/bucket.hpp2
-rw-r--r--src/mbgl/renderer/buckets/symbol_bucket.cpp10
-rw-r--r--src/mbgl/renderer/buckets/symbol_bucket.hpp4
3 files changed, 9 insertions, 7 deletions
diff --git a/src/mbgl/renderer/bucket.hpp b/src/mbgl/renderer/bucket.hpp
index 6c74b8309f..3dae53408b 100644
--- a/src/mbgl/renderer/bucket.hpp
+++ b/src/mbgl/renderer/bucket.hpp
@@ -61,7 +61,7 @@ public:
}
// Places this bucket to the given placement.
virtual void place(Placement&, const BucketPlacementParameters&, std::set<uint32_t>&) {}
- virtual void updateVertices(Placement&, bool /*updateOpacities*/, const TransformState&, const RenderTile&, std::set<uint32_t>&) {}
+ virtual void updateVertices(const Placement&, bool /*updateOpacities*/, const TransformState&, const RenderTile&, std::set<uint32_t>&) {}
protected:
Bucket() = default;
diff --git a/src/mbgl/renderer/buckets/symbol_bucket.cpp b/src/mbgl/renderer/buckets/symbol_bucket.cpp
index ff201e9c2c..c3e4adfab6 100644
--- a/src/mbgl/renderer/buckets/symbol_bucket.cpp
+++ b/src/mbgl/renderer/buckets/symbol_bucket.cpp
@@ -232,14 +232,14 @@ void SymbolBucket::sortFeatures(const float angle) {
icon.triangles.clear();
sdfIcon.triangles.clear();
- featureSortOrder = std::make_unique<std::vector<size_t>>();
- featureSortOrder->reserve(symbolInstances.size());
+ auto symbolsSortOrder = std::make_unique<std::vector<size_t>>();
+ symbolsSortOrder->reserve(symbolInstances.size());
// If the symbols are allowed to overlap sort them by their vertical screen position.
// The index array buffer is rewritten to reference the (unchanged) vertices in the
// sorted order.
for (const SymbolInstance& symbolInstance : getSortedSymbols(angle)) {
- featureSortOrder->push_back(symbolInstance.dataFeatureIndex);
+ symbolsSortOrder->push_back(symbolInstance.dataFeatureIndex);
if (symbolInstance.placedRightTextIndex) {
addPlacedSymbol(text.triangles, text.placedSymbols[*symbolInstance.placedRightTextIndex]);
@@ -266,6 +266,8 @@ void SymbolBucket::sortFeatures(const float angle) {
addPlacedSymbol(iconBuffer.triangles, iconBuffer.placedSymbols[*symbolInstance.placedVerticalIconIndex]);
}
}
+
+ featureSortOrder = std::move(symbolsSortOrder);
}
std::vector<std::reference_wrapper<const SymbolInstance>> SymbolBucket::getSortedSymbols(const float angle) const {
@@ -301,7 +303,7 @@ void SymbolBucket::place(Placement& placement, const BucketPlacementParameters&
placement.placeBucket(*this, params, seenIds);
}
-void SymbolBucket::updateVertices(Placement& placement, bool updateOpacities, const TransformState& state, const RenderTile& tile, std::set<uint32_t>& seenIds) {
+void SymbolBucket::updateVertices(const Placement& placement, bool updateOpacities, const TransformState& state, const RenderTile& tile, std::set<uint32_t>& seenIds) {
if (updateOpacities) {
placement.updateBucketOpacities(*this, state, seenIds);
placementChangesUploaded = false;
diff --git a/src/mbgl/renderer/buckets/symbol_bucket.hpp b/src/mbgl/renderer/buckets/symbol_bucket.hpp
index 020190b81f..c2bbcd40a0 100644
--- a/src/mbgl/renderer/buckets/symbol_bucket.hpp
+++ b/src/mbgl/renderer/buckets/symbol_bucket.hpp
@@ -68,7 +68,7 @@ public:
bool hasData() const override;
std::pair<uint32_t, bool> registerAtCrossTileIndex(CrossTileSymbolLayerIndex&, const OverscaledTileID&, uint32_t& maxCrossTileID) override;
void place(Placement&, const BucketPlacementParameters&, std::set<uint32_t>&) override;
- void updateVertices(Placement&, bool updateOpacities, const TransformState&, const RenderTile&, std::set<uint32_t>&) override;
+ void updateVertices(const Placement&, bool updateOpacities, const TransformState&, const RenderTile&, std::set<uint32_t>&) override;
bool hasTextData() const;
bool hasIconData() const;
bool hasSdfIconData() const;
@@ -176,7 +176,7 @@ public:
const std::vector<style::TextWritingModeType> placementModes;
mutable optional<bool> hasFormatSectionOverrides_;
- std::shared_ptr<std::vector<size_t>> featureSortOrder;
+ FeatureSortOrder featureSortOrder;
};
} // namespace mbgl