diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-07-22 00:45:03 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-07-22 12:23:39 +0300 |
commit | e582a329ef0150616b0d0e1d7c8f44bd31d92f26 (patch) | |
tree | 4e386f7438cf1d80df149634ee32e956e4f63f1f /src/mbgl/renderer/buckets/symbol_bucket.cpp | |
parent | 11bfe2398111dbca232b744db9b50119e7d3c495 (diff) | |
download | qtlocation-mapboxgl-e582a329ef0150616b0d0e1d7c8f44bd31d92f26.tar.gz |
[core] SymbolBacket creates collision buffers optionally
sizeof(SymbolBucket) : 1024 -> 704
Diffstat (limited to 'src/mbgl/renderer/buckets/symbol_bucket.cpp')
-rw-r--r-- | src/mbgl/renderer/buckets/symbol_bucket.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/mbgl/renderer/buckets/symbol_bucket.cpp b/src/mbgl/renderer/buckets/symbol_bucket.cpp index cd9fb08d34..83efb232c2 100644 --- a/src/mbgl/renderer/buckets/symbol_bucket.cpp +++ b/src/mbgl/renderer/buckets/symbol_bucket.cpp @@ -111,28 +111,28 @@ void SymbolBucket::upload(gfx::UploadPass& uploadPass) { if (hasCollisionBoxData()) { if (!staticUploaded) { - collisionBox.indexBuffer = uploadPass.createIndexBuffer(std::move(collisionBox.lines)); - collisionBox.vertexBuffer = uploadPass.createVertexBuffer(std::move(collisionBox.vertices)); + collisionBox->indexBuffer = uploadPass.createIndexBuffer(std::move(collisionBox->lines)); + collisionBox->vertexBuffer = uploadPass.createVertexBuffer(std::move(collisionBox->vertices)); } if (!placementChangesUploaded) { - if (!collisionBox.dynamicVertexBuffer) { - collisionBox.dynamicVertexBuffer = uploadPass.createVertexBuffer(std::move(collisionBox.dynamicVertices), gfx::BufferUsageType::StreamDraw); + if (!collisionBox->dynamicVertexBuffer) { + collisionBox->dynamicVertexBuffer = uploadPass.createVertexBuffer(std::move(collisionBox->dynamicVertices), gfx::BufferUsageType::StreamDraw); } else { - uploadPass.updateVertexBuffer(*collisionBox.dynamicVertexBuffer, std::move(collisionBox.dynamicVertices)); + uploadPass.updateVertexBuffer(*collisionBox->dynamicVertexBuffer, std::move(collisionBox->dynamicVertices)); } } } if (hasCollisionCircleData()) { if (!staticUploaded) { - collisionCircle.indexBuffer = uploadPass.createIndexBuffer(std::move(collisionCircle.triangles)); - collisionCircle.vertexBuffer = uploadPass.createVertexBuffer(std::move(collisionCircle.vertices)); + collisionCircle->indexBuffer = uploadPass.createIndexBuffer(std::move(collisionCircle->triangles)); + collisionCircle->vertexBuffer = uploadPass.createVertexBuffer(std::move(collisionCircle->vertices)); } if (!placementChangesUploaded) { - if (!collisionCircle.dynamicVertexBuffer) { - collisionCircle.dynamicVertexBuffer = uploadPass.createVertexBuffer(std::move(collisionCircle.dynamicVertices), gfx::BufferUsageType::StreamDraw); + if (!collisionCircle->dynamicVertexBuffer) { + collisionCircle->dynamicVertexBuffer = uploadPass.createVertexBuffer(std::move(collisionCircle->dynamicVertices), gfx::BufferUsageType::StreamDraw); } else { - uploadPass.updateVertexBuffer(*collisionCircle.dynamicVertexBuffer, std::move(collisionCircle.dynamicVertices)); + uploadPass.updateVertexBuffer(*collisionCircle->dynamicVertexBuffer, std::move(collisionCircle->dynamicVertices)); } } } @@ -157,11 +157,11 @@ bool SymbolBucket::hasIconData() const { } bool SymbolBucket::hasCollisionBoxData() const { - return !collisionBox.segments.empty(); + return collisionBox && !collisionBox->segments.empty(); } bool SymbolBucket::hasCollisionCircleData() const { - return !collisionCircle.segments.empty(); + return collisionCircle && !collisionCircle->segments.empty(); } void addPlacedSymbol(gfx::IndexVector<gfx::Triangles>& triangles, const PlacedSymbol& placedSymbol) { |