diff options
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r-- | src/mbgl/renderer/bucket.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/buckets/symbol_bucket.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/renderer/buckets/symbol_bucket.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/renderer_impl.cpp | 2 |
4 files changed, 7 insertions, 6 deletions
diff --git a/src/mbgl/renderer/bucket.hpp b/src/mbgl/renderer/bucket.hpp index 6840d8c47a..a978c06d6b 100644 --- a/src/mbgl/renderer/bucket.hpp +++ b/src/mbgl/renderer/bucket.hpp @@ -18,6 +18,7 @@ class OverscaledTileID; class PatternDependency; using PatternLayerMap = std::map<std::string, PatternDependency>; class Placement; +class TransformState; class BucketPlacementParameters; class RenderTile; @@ -60,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 RenderTile&, std::set<uint32_t>&) {} + virtual void updateVertices(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 c9dd126181..2ad5318d19 100644 --- a/src/mbgl/renderer/buckets/symbol_bucket.cpp +++ b/src/mbgl/renderer/buckets/symbol_bucket.cpp @@ -253,14 +253,14 @@ void SymbolBucket::place(Placement& placement, const BucketPlacementParameters& placement.placeBucket(*this, params, seenIds); } -void SymbolBucket::updateVertices(Placement& placement, bool updateOpacities, const RenderTile& tile, std::set<uint32_t>& seenIds) { +void SymbolBucket::updateVertices(Placement& placement, bool updateOpacities, const TransformState& state, const RenderTile& tile, std::set<uint32_t>& seenIds) { if (updateOpacities) { - placement.updateBucketOpacities(*this, seenIds); + placement.updateBucketOpacities(*this, state, seenIds); placementChangesUploaded = false; uploaded = false; } - if (placement.updateBucketDynamicVertices(*this, tile)) { + if (placement.updateBucketDynamicVertices(*this, state, tile)) { dynamicUploaded = false; uploaded = false; } diff --git a/src/mbgl/renderer/buckets/symbol_bucket.hpp b/src/mbgl/renderer/buckets/symbol_bucket.hpp index ed2ccd98c8..f72e832169 100644 --- a/src/mbgl/renderer/buckets/symbol_bucket.hpp +++ b/src/mbgl/renderer/buckets/symbol_bucket.hpp @@ -60,7 +60,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 RenderTile&, std::set<uint32_t>&) override; + void updateVertices(Placement&, bool updateOpacities, const TransformState&, const RenderTile&, std::set<uint32_t>&) override; bool hasTextData() const; bool hasIconData() const; bool hasCollisionBoxData() const; diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 201d46ebac..294b4dfa1c 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -348,7 +348,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { } for (auto it = layersNeedPlacement.rbegin(); it != layersNeedPlacement.rend(); ++it) { - placement->updateLayerBuckets(*it, placementChanged || symbolBucketsChanged); + placement->updateLayerBuckets(*it, updateParameters.transformState, placementChanged || symbolBucketsChanged); } } |