diff options
author | zmiao <zmiao.jamie@gmail.com> | 2019-08-22 14:19:15 +0300 |
---|---|---|
committer | zmiao <zmiao.jamie@gmail.com> | 2019-08-22 14:19:15 +0300 |
commit | 2d8733d7b0ddacf534d9c006404537934315fb35 (patch) | |
tree | fb7152f5c5afeba62a62e2f944a27c05a76d43bf | |
parent | 048a43a78984914a135380e3c8ce21790e860327 (diff) | |
download | qtlocation-mapboxgl-upstream/fix-sdf-rendering.tar.gz |
remove iconstatus getter in stymbol bucketupstream/fix-sdf-rendering
-rw-r--r-- | src/mbgl/layout/symbol_instance.cpp | 12 | ||||
-rw-r--r-- | src/mbgl/layout/symbol_instance.hpp | 6 | ||||
-rw-r--r-- | src/mbgl/layout/symbol_layout.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/buckets/symbol_bucket.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/text/placement.cpp | 10 |
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; } |