summaryrefslogtreecommitdiff
path: root/src/mbgl/text
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-12-09 14:37:09 +0100
committerAlexander Shalamov <alexander.shalamov@mapbox.com>2020-01-15 15:02:11 +0200
commit4b171cccf1c4012f8962b022f86c4ac8d73f09df (patch)
tree0653d4bdf5188c4346bba13ae6a34946776585d9 /src/mbgl/text
parentd8d336160c49fcda3e2ace93393176d53440532b (diff)
downloadqtlocation-mapboxgl-4b171cccf1c4012f8962b022f86c4ac8d73f09df.tar.gz
[core] getGlyphQuad -> getGlyphQuads
Diffstat (limited to 'src/mbgl/text')
-rw-r--r--src/mbgl/text/placement.cpp7
-rw-r--r--src/mbgl/text/quads.cpp24
-rw-r--r--src/mbgl/text/quads.hpp2
3 files changed, 18 insertions, 15 deletions
diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp
index 2a98935d73..d6a78082fa 100644
--- a/src/mbgl/text/placement.cpp
+++ b/src/mbgl/text/placement.cpp
@@ -945,19 +945,22 @@ void Placement::updateBucketOpacities(SymbolBucket& bucket,
}
}
if (symbolInstance.hasIcon()) {
+ size_t iconOpacityVerticesSize = 0u;
const auto& opacityVertex =
SymbolIconProgram::opacityVertex(opacityState.icon.placed, opacityState.icon.opacity);
auto& iconBuffer = symbolInstance.hasSdfIcon() ? bucket.sdfIcon : bucket.icon;
if (symbolInstance.placedIconIndex) {
- iconBuffer.opacityVertices.extend(4, opacityVertex);
+ iconOpacityVerticesSize += symbolInstance.iconQuadsSize * 4;
iconBuffer.placedSymbols[*symbolInstance.placedIconIndex].hidden = opacityState.isHidden();
}
if (symbolInstance.placedVerticalIconIndex) {
- iconBuffer.opacityVertices.extend(4, opacityVertex);
+ iconOpacityVerticesSize += symbolInstance.iconQuadsSize * 4;
iconBuffer.placedSymbols[*symbolInstance.placedVerticalIconIndex].hidden = opacityState.isHidden();
}
+
+ iconBuffer.opacityVertices.extend(iconOpacityVerticesSize, opacityVertex);
}
auto updateIconCollisionBox = [&](const auto& feature, const bool placed, const Point<float>& shift) {
diff --git a/src/mbgl/text/quads.cpp b/src/mbgl/text/quads.cpp
index 747a208ee1..1f07ad4427 100644
--- a/src/mbgl/text/quads.cpp
+++ b/src/mbgl/text/quads.cpp
@@ -14,7 +14,7 @@ namespace mbgl {
using namespace style;
-SymbolQuad getIconQuad(const PositionedIcon& shapedIcon, WritingModeType writingMode, SymbolContent iconType) {
+SymbolQuads getIconQuads(const PositionedIcon& shapedIcon, WritingModeType writingMode, SymbolContent iconType) {
const ImagePosition& image = shapedIcon.image();
// If you have a 10px icon that isn't perfectly aligned to the pixel grid it will cover 11 actual
@@ -74,17 +74,17 @@ SymbolQuad getIconQuad(const PositionedIcon& shapedIcon, WritingModeType writing
Point<float> pixelOffsetBR;
Point<float> minFontScale;
- return SymbolQuad{tl,
- tr,
- bl,
- br,
- textureRect,
- writingMode,
- {0.0f, 0.0f},
- iconType == SymbolContent::IconSDF,
- pixelOffsetTL,
- pixelOffsetBR,
- minFontScale};
+ return {SymbolQuad{tl,
+ tr,
+ bl,
+ br,
+ textureRect,
+ writingMode,
+ {0.0f, 0.0f},
+ iconType == SymbolContent::IconSDF,
+ pixelOffsetTL,
+ pixelOffsetBR,
+ minFontScale}};
}
SymbolQuads getGlyphQuads(const Shaping& shapedText,
diff --git a/src/mbgl/text/quads.hpp b/src/mbgl/text/quads.hpp
index c61c85f14c..b6d2687d07 100644
--- a/src/mbgl/text/quads.hpp
+++ b/src/mbgl/text/quads.hpp
@@ -57,7 +57,7 @@ public:
using SymbolQuads = std::vector<SymbolQuad>;
-SymbolQuad getIconQuad(const PositionedIcon& shapedIcon, WritingModeType writingMode, SymbolContent iconType);
+SymbolQuads getIconQuads(const PositionedIcon& shapedIcon, WritingModeType writingMode, SymbolContent iconType);
SymbolQuads getGlyphQuads(const Shaping& shapedText,
const std::array<float, 2> textOffset,