summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/buckets/symbol_bucket.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/buckets/symbol_bucket.hpp')
-rw-r--r--src/mbgl/renderer/buckets/symbol_bucket.hpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/mbgl/renderer/buckets/symbol_bucket.hpp b/src/mbgl/renderer/buckets/symbol_bucket.hpp
index 1c975e93e8..7876937b1e 100644
--- a/src/mbgl/renderer/buckets/symbol_bucket.hpp
+++ b/src/mbgl/renderer/buckets/symbol_bucket.hpp
@@ -129,12 +129,24 @@ public:
struct CollisionBoxBuffer : public CollisionBuffer {
gfx::IndexVector<gfx::Lines> lines;
optional<gfx::IndexBuffer> indexBuffer;
- } collisionBox;
+ };
+ std::unique_ptr<CollisionBoxBuffer> collisionBox;
+
+ CollisionBoxBuffer& getOrCreateCollisionBox() {
+ if (!collisionBox) collisionBox = std::make_unique<CollisionBoxBuffer>();
+ return *collisionBox;
+ }
struct CollisionCircleBuffer : public CollisionBuffer {
gfx::IndexVector<gfx::Triangles> triangles;
optional<gfx::IndexBuffer> indexBuffer;
- } collisionCircle;
+ };
+ std::unique_ptr<CollisionCircleBuffer> collisionCircle;
+
+ CollisionCircleBuffer& getOrCreateCollisionCircleBuffer() {
+ if (!collisionCircle) collisionCircle = std::make_unique<CollisionCircleBuffer>();
+ return *collisionCircle;
+ }
const float tilePixelRatio;
uint32_t bucketInstanceId;