summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r--src/mbgl/renderer/buckets/symbol_bucket.cpp8
-rw-r--r--src/mbgl/renderer/buckets/symbol_bucket.hpp11
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;