diff --git a/src/mbgl/layout/symbol_layout.cpp b/src/mbgl/layout/symbol_layout.cpp index 506e300b1..8fea0858e 100644 --- a/src/mbgl/layout/symbol_layout.cpp +++ b/src/mbgl/layout/symbol_layout.cpp @@ -879,9 +879,9 @@ size_t SymbolLayout::addSymbol(SymbolBucket::Buffer& buffer, const auto &bl = symbol.bl; const auto &br = symbol.br; const auto &tex = symbol.tex; - const Point pixelOffsetTL{0, 0}; - const Point pixelOffsetBR{0, 0}; - const Point minFontScale{0, 0}; + const auto& pixelOffsetTL = symbol.pixelOffsetTL; + const auto& pixelOffsetBR = symbol.pixelOffsetBR; + const auto& minFontScale = symbol.minFontScale; if (buffer.segments.empty() || buffer.segments.back().vertexLength + vertexLength > std::numeric_limits::max() || diff --git a/src/mbgl/text/quads.cpp b/src/mbgl/text/quads.cpp index 480bcd79a..747a208ee 100644 --- a/src/mbgl/text/quads.cpp +++ b/src/mbgl/text/quads.cpp @@ -70,7 +70,21 @@ SymbolQuad getIconQuad(const PositionedIcon& shapedIcon, WritingModeType writing static_cast(image.textureRect.h + border * 2) }; - return SymbolQuad{tl, tr, bl, br, textureRect, writingMode, {0.0f, 0.0f}, iconType == SymbolContent::IconSDF}; + Point pixelOffsetTL; + Point pixelOffsetBR; + Point minFontScale; + + return SymbolQuad{tl, + tr, + bl, + br, + textureRect, + writingMode, + {0.0f, 0.0f}, + iconType == SymbolContent::IconSDF, + pixelOffsetTL, + pixelOffsetBR, + minFontScale}; } SymbolQuads getGlyphQuads(const Shaping& shapedText, @@ -181,8 +195,22 @@ SymbolQuads getGlyphQuads(const Shaping& shapedText, br = util::matrixMultiply(matrix, br); } - quads.emplace_back( - tl, tr, bl, br, rect, shapedText.writingMode, glyphOffset, isSDF, positionedGlyph.sectionIndex); + Point pixelOffsetTL; + Point pixelOffsetBR; + Point minFontScale; + + quads.emplace_back(tl, + tr, + bl, + br, + rect, + shapedText.writingMode, + glyphOffset, + isSDF, + pixelOffsetTL, + pixelOffsetBR, + minFontScale, + positionedGlyph.sectionIndex); } } diff --git a/src/mbgl/text/quads.hpp b/src/mbgl/text/quads.hpp index 29f798ba0..c61c85f14 100644 --- a/src/mbgl/text/quads.hpp +++ b/src/mbgl/text/quads.hpp @@ -24,26 +24,35 @@ public: WritingModeType writingMode_, Point glyphOffset_, bool isSDF_, + Point pixelOffsetTL_, + Point pixelOffsetBR_, + Point minFontScale_, size_t sectionIndex_ = 0) : tl(tl_), tr(tr_), bl(bl_), br(br_), tex(tex_), - writingMode(writingMode_), + pixelOffsetTL(pixelOffsetTL_), + pixelOffsetBR(pixelOffsetBR_), glyphOffset(glyphOffset_), + writingMode(writingMode_), isSDF(isSDF_), - sectionIndex(sectionIndex_) {} + sectionIndex(sectionIndex_), + minFontScale(minFontScale_) {} Point tl; Point tr; Point bl; Point br; Rect tex; - WritingModeType writingMode; + Point pixelOffsetTL; + Point pixelOffsetBR; Point glyphOffset; + WritingModeType writingMode; bool isSDF; size_t sectionIndex; + Point minFontScale; }; using SymbolQuads = std::vector;