summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzmiao <zmiao.jamie@gmail.com>2019-08-22 14:19:15 +0300
committerzmiao <zmiao.jamie@gmail.com>2019-08-22 14:19:15 +0300
commit2d8733d7b0ddacf534d9c006404537934315fb35 (patch)
treefb7152f5c5afeba62a62e2f944a27c05a76d43bf
parent048a43a78984914a135380e3c8ce21790e860327 (diff)
downloadqtlocation-mapboxgl-upstream/fix-sdf-rendering.tar.gz
remove iconstatus getter in stymbol bucketupstream/fix-sdf-rendering
-rw-r--r--src/mbgl/layout/symbol_instance.cpp12
-rw-r--r--src/mbgl/layout/symbol_instance.hpp6
-rw-r--r--src/mbgl/layout/symbol_layout.cpp4
-rw-r--r--src/mbgl/renderer/buckets/symbol_bucket.cpp2
-rw-r--r--src/mbgl/text/placement.cpp10
5 files changed, 12 insertions, 22 deletions
diff --git a/src/mbgl/layout/symbol_instance.cpp b/src/mbgl/layout/symbol_instance.cpp
index c5b11dbe00..a8b568d1cb 100644
--- a/src/mbgl/layout/symbol_instance.cpp
+++ b/src/mbgl/layout/symbol_instance.cpp
@@ -108,8 +108,8 @@ SymbolInstance::SymbolInstance(Anchor& anchor_,
radialTextOffset(radialTextOffset_),
singleLine(shapedTextOrientations.singleLine) {
assert(iconFlag < 3);
- sdfIcon = iconFlag & 0x02;
- normalIcon = iconFlag & 0x01;
+ hasIcon = iconFlag & 0x03;
+ hasSdfIcon = iconFlag & 0x02;
if (allowVerticalPlacement && shapedTextOrientations.vertical) {
const float verticalPointLabelAngle = 90.0f;
verticalTextCollisionFeature = CollisionFeature(line(), anchor, shapedTextOrientations.vertical, textBoxScale_, textPadding, textPlacement, indexedFeature, overscaling, textRotation + verticalPointLabelAngle);
@@ -172,14 +172,6 @@ const optional<SymbolQuad>& SymbolInstance::verticalIconQuad() const {
return sharedData->verticalIconQuad;
}
-bool SymbolInstance::hasIcon() const {
- return normalIcon || sdfIcon;
-}
-
-bool SymbolInstance::hasSdfIcon() const {
- return sdfIcon;
-}
-
void SymbolInstance::releaseSharedData() {
sharedData.reset();
}
diff --git a/src/mbgl/layout/symbol_instance.hpp b/src/mbgl/layout/symbol_instance.hpp
index 3560ef0f8f..be3c4abb8a 100644
--- a/src/mbgl/layout/symbol_instance.hpp
+++ b/src/mbgl/layout/symbol_instance.hpp
@@ -75,8 +75,6 @@ public:
const SymbolQuads& verticalGlyphQuads() const;
const optional<SymbolQuad>& iconQuad() const;
const optional<SymbolQuad>& verticalIconQuad() const;
- bool hasIcon() const;
- bool hasSdfIcon() const;
void releaseSharedData();
private:
@@ -85,8 +83,8 @@ private:
public:
Anchor anchor;
bool hasText : 1;
- bool sdfIcon : 1;
- bool normalIcon : 1;
+ bool hasIcon : 1;
+ bool hasSdfIcon : 1;
std::size_t rightJustifiedGlyphQuadsSize;
std::size_t centerJustifiedGlyphQuadsSize;
diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp
index 0f4cef4e4a..1ed292bd71 100644
--- a/src/mbgl/layout/symbol_layout.cpp
+++ b/src/mbgl/layout/symbol_layout.cpp
@@ -632,7 +632,7 @@ void SymbolLayout::createBucket(const ImagePositions&, std::unique_ptr<FeatureIn
for (SymbolInstance &symbolInstance : bucket->symbolInstances) {
const bool hasText = symbolInstance.hasText;
- const bool hasIcon = symbolInstance.hasIcon();
+ const bool hasIcon = symbolInstance.hasIcon;
const bool singleLine = symbolInstance.singleLine;
const auto& feature = features.at(symbolInstance.layoutFeatureIndex);
@@ -643,7 +643,7 @@ void SymbolLayout::createBucket(const ImagePositions&, std::unique_ptr<FeatureIn
// is used when dynamic vertices for icon-text-fit image have to be updated.
if (hasIcon) {
const Range<float> sizeData = bucket->iconSizeBinder->getVertexSizeData(feature);
- auto& iconBuffer = symbolInstance.hasSdfIcon() ? bucket->sdfIcon : bucket->icon;
+ auto& iconBuffer = symbolInstance.hasSdfIcon ? bucket->sdfIcon : bucket->icon;
const auto placeIcon = [&] (const SymbolQuad& iconQuad, auto& index, const WritingModeType writingMode) {
iconBuffer.placedSymbols.emplace_back(symbolInstance.anchor.point, symbolInstance.anchor.segment, sizeData.min, sizeData.max,
symbolInstance.iconOffset, writingMode, symbolInstance.line(), std::vector<float>());
diff --git a/src/mbgl/renderer/buckets/symbol_bucket.cpp b/src/mbgl/renderer/buckets/symbol_bucket.cpp
index b2f469927c..7b652c05e6 100644
--- a/src/mbgl/renderer/buckets/symbol_bucket.cpp
+++ b/src/mbgl/renderer/buckets/symbol_bucket.cpp
@@ -235,7 +235,7 @@ void SymbolBucket::sortFeatures(const float angle) {
addPlacedSymbol(text.triangles, text.placedSymbols[*symbolInstance.placedVerticalTextIndex]);
}
- auto& iconBuffer = symbolInstance.hasSdfIcon() ? sdfIcon : icon;
+ auto& iconBuffer = symbolInstance.hasSdfIcon ? sdfIcon : icon;
if (symbolInstance.placedIconIndex) {
addPlacedSymbol(iconBuffer.triangles,
iconBuffer.placedSymbols[*symbolInstance.placedIconIndex]);
diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp
index 7f7b16275c..88e1e0d323 100644
--- a/src/mbgl/text/placement.cpp
+++ b/src/mbgl/text/placement.cpp
@@ -367,7 +367,7 @@ void Placement::placeBucket(
shift = {0.0f, 0.0f};
}
- const auto& iconBuffer = symbolInstance.hasSdfIcon() ? bucket.sdfIcon : bucket.icon;
+ const auto& iconBuffer = symbolInstance.hasSdfIcon ? bucket.sdfIcon : bucket.icon;
const PlacedSymbol& placedSymbol = iconBuffer.placedSymbols.at(*symbolInstance.placedIconIndex);
const float fontSize = evaluateSizeForFeature(partiallyEvaluatedIconSize, placedSymbol);
const auto& placeIconFeature = [&] (const CollisionFeature& collisionFeature) {
@@ -391,7 +391,7 @@ void Placement::placeBucket(
}
const bool iconWithoutText = !symbolInstance.hasText || layout.get<style::TextOptional>();
- const bool textWithoutIcon = !(symbolInstance.hasIcon() || symbolInstance.hasSdfIcon()) || layout.get<style::IconOptional>();
+ const bool textWithoutIcon = !(symbolInstance.hasIcon || symbolInstance.hasSdfIcon) || layout.get<style::IconOptional>();
// combine placements for icon and text
if (!iconWithoutText && !textWithoutIcon) {
@@ -772,9 +772,9 @@ void Placement::updateBucketOpacities(SymbolBucket& bucket, const TransformState
markUsedJustification(bucket, prevOffset->second.anchor, symbolInstance, previousOrientation);
}
}
- if (symbolInstance.hasIcon()) {
+ if (symbolInstance.hasIcon) {
const auto& opacityVertex = SymbolIconProgram::opacityVertex(opacityState.icon.placed, opacityState.icon.opacity);
- auto& iconBuffer = symbolInstance.hasSdfIcon() ? bucket.sdfIcon : bucket.icon;
+ auto& iconBuffer = symbolInstance.hasSdfIcon ? bucket.sdfIcon : bucket.icon;
if (symbolInstance.placedIconIndex) {
iconBuffer.opacityVertices.extend(4, opacityVertex);
@@ -935,7 +935,7 @@ void Placement::markUsedOrientation(SymbolBucket& bucket, style::TextWritingMode
bucket.text.placedSymbols.at(*symbolInstance.placedVerticalTextIndex).placedOrientation = vertical;
}
- auto& iconBuffer = symbolInstance.hasSdfIcon() ? bucket.sdfIcon : bucket.icon;
+ auto& iconBuffer = symbolInstance.hasSdfIcon ? bucket.sdfIcon : bucket.icon;
if (symbolInstance.placedIconIndex) {
iconBuffer.placedSymbols.at(*symbolInstance.placedIconIndex).placedOrientation = horizontal;
}