summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/buckets
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-05-16 15:53:47 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-05-19 18:15:33 +0300
commit9fe5256ce7121e28572239757df63a7c20144be5 (patch)
tree5cc4329450c9bf4c140f4bfa3a0f845c95406afe /src/mbgl/renderer/buckets
parent18ddced9b6de8194fe0cb3464ec8b3a56139a063 (diff)
downloadqtlocation-mapboxgl-9fe5256ce7121e28572239757df63a7c20144be5.tar.gz
[core] Avoid bucket downcasting in Placement
Diffstat (limited to 'src/mbgl/renderer/buckets')
-rw-r--r--src/mbgl/renderer/buckets/symbol_bucket.cpp10
-rw-r--r--src/mbgl/renderer/buckets/symbol_bucket.hpp2
2 files changed, 12 insertions, 0 deletions
diff --git a/src/mbgl/renderer/buckets/symbol_bucket.cpp b/src/mbgl/renderer/buckets/symbol_bucket.cpp
index 8af40f6e3e..381ef5b24b 100644
--- a/src/mbgl/renderer/buckets/symbol_bucket.cpp
+++ b/src/mbgl/renderer/buckets/symbol_bucket.cpp
@@ -4,6 +4,7 @@
#include <mbgl/style/layers/symbol_layer_impl.hpp>
#include <mbgl/text/cross_tile_symbol_index.hpp>
#include <mbgl/text/glyph_atlas.hpp>
+#include <mbgl/text/placement.hpp>
namespace mbgl {
@@ -245,4 +246,13 @@ std::pair<uint32_t, bool> SymbolBucket::registerAtCrossTileIndex(CrossTileSymbol
return std::make_pair(bucketInstanceId, added);
}
+uint32_t SymbolBucket::place(Placement& placement, const BucketPlacementParameters& params, std::set<uint32_t>& seenIds) {
+ placement.placeLayerBucket(*this, params, seenIds);
+ return bucketInstanceId;
+}
+
+void SymbolBucket::updateOpacities(Placement& placement, std::set<uint32_t>& seenIds) {
+ placement.updateBucketOpacities(*this, seenIds);
+}
+
} // namespace mbgl
diff --git a/src/mbgl/renderer/buckets/symbol_bucket.hpp b/src/mbgl/renderer/buckets/symbol_bucket.hpp
index dc3aa64567..3b61002890 100644
--- a/src/mbgl/renderer/buckets/symbol_bucket.hpp
+++ b/src/mbgl/renderer/buckets/symbol_bucket.hpp
@@ -59,6 +59,8 @@ public:
void upload(gfx::UploadPass&) override;
bool hasData() const override;
std::pair<uint32_t, bool> registerAtCrossTileIndex(CrossTileSymbolLayerIndex&, const OverscaledTileID&, uint32_t& maxCrossTileID) override;
+ uint32_t place(Placement&, const BucketPlacementParameters&, std::set<uint32_t>&) override;
+ void updateOpacities(Placement&, std::set<uint32_t>&) override;
bool hasTextData() const;
bool hasIconData() const;
bool hasCollisionBoxData() const;