diff options
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r-- | src/mbgl/renderer/buckets/symbol_bucket.cpp | 8 | ||||
-rw-r--r-- | src/mbgl/renderer/buckets/symbol_bucket.hpp | 11 |
2 files changed, 15 insertions, 4 deletions
diff --git a/src/mbgl/renderer/buckets/symbol_bucket.cpp b/src/mbgl/renderer/buckets/symbol_bucket.cpp index 2a9f5df9c0..21a7870473 100644 --- a/src/mbgl/renderer/buckets/symbol_bucket.cpp +++ b/src/mbgl/renderer/buckets/symbol_bucket.cpp @@ -23,7 +23,9 @@ SymbolBucket::SymbolBucket(Immutable<style::SymbolLayoutProperties::PossiblyEval bool sortFeaturesByY_, const std::string bucketName_, const std::vector<SymbolInstance>&& symbolInstances_, - float tilePixelRatio_) + float tilePixelRatio_, + bool allowVerticalPlacement_, + std::vector<style::TextWritingModeType> placementModes_) : layout(std::move(layout_)), bucketLeaderID(std::move(bucketName_)), sdfIcons(sdfIcons_), @@ -39,7 +41,9 @@ SymbolBucket::SymbolBucket(Immutable<style::SymbolLayoutProperties::PossiblyEval textSizeBinder(SymbolSizeBinder::create(zoom, textSize, TextSize::defaultValue())), iconSizeBinder(SymbolSizeBinder::create(zoom, iconSize, IconSize::defaultValue())), tilePixelRatio(tilePixelRatio_), - bucketInstanceId(++maxBucketInstanceId) { + bucketInstanceId(++maxBucketInstanceId), + allowVerticalPlacement(allowVerticalPlacement_), + placementModes(std::move(placementModes_)) { for (const auto& pair : paintProperties_) { const auto& evaluated = getEvaluated<SymbolLayerProperties>(pair.second); diff --git a/src/mbgl/renderer/buckets/symbol_bucket.hpp b/src/mbgl/renderer/buckets/symbol_bucket.hpp index a94073f7d0..f47ced8331 100644 --- a/src/mbgl/renderer/buckets/symbol_bucket.hpp +++ b/src/mbgl/renderer/buckets/symbol_bucket.hpp @@ -39,6 +39,10 @@ public: size_t vertexStartIndex; // The crossTileID is only filled/used on the foreground for variable text anchors uint32_t crossTileID = 0u; + // The placedOrientation is only used when symbol layer's property is set to support + // placement for orientation variants. + optional<style::TextWritingModeType> placedOrientation; + float angle = 0; }; class SymbolBucket final : public Bucket { @@ -53,7 +57,9 @@ public: bool sortFeaturesByY, const std::string bucketLeaderID, const std::vector<SymbolInstance>&&, - const float tilePixelRatio); + const float tilePixelRatio, + bool allowVerticalPlacement, + std::vector<style::TextWritingModeType> placementModes); ~SymbolBucket() override; void upload(gfx::UploadPass&) override; @@ -149,7 +155,8 @@ public: const float tilePixelRatio; uint32_t bucketInstanceId; - + const bool allowVerticalPlacement; + const std::vector<style::TextWritingModeType> placementModes; mutable optional<bool> hasFormatSectionOverrides_; std::shared_ptr<std::vector<size_t>> featureSortOrder; |