[core] add pixelOffset and minFontScale to SymbolQuads
This commit is contained in:
committed by
Alexander Shalamov
parent
f82d4e6857
commit
d8d336160c
@@ -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<float> pixelOffsetTL{0, 0};
|
||||
const Point<float> pixelOffsetBR{0, 0};
|
||||
const Point<float> 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<uint16_t>::max() ||
|
||||
|
||||
@@ -70,7 +70,21 @@ SymbolQuad getIconQuad(const PositionedIcon& shapedIcon, WritingModeType writing
|
||||
static_cast<uint16_t>(image.textureRect.h + border * 2)
|
||||
};
|
||||
|
||||
return SymbolQuad{tl, tr, bl, br, textureRect, writingMode, {0.0f, 0.0f}, iconType == SymbolContent::IconSDF};
|
||||
Point<float> pixelOffsetTL;
|
||||
Point<float> pixelOffsetBR;
|
||||
Point<float> 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<float> pixelOffsetTL;
|
||||
Point<float> pixelOffsetBR;
|
||||
Point<float> minFontScale;
|
||||
|
||||
quads.emplace_back(tl,
|
||||
tr,
|
||||
bl,
|
||||
br,
|
||||
rect,
|
||||
shapedText.writingMode,
|
||||
glyphOffset,
|
||||
isSDF,
|
||||
pixelOffsetTL,
|
||||
pixelOffsetBR,
|
||||
minFontScale,
|
||||
positionedGlyph.sectionIndex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,26 +24,35 @@ public:
|
||||
WritingModeType writingMode_,
|
||||
Point<float> glyphOffset_,
|
||||
bool isSDF_,
|
||||
Point<float> pixelOffsetTL_,
|
||||
Point<float> pixelOffsetBR_,
|
||||
Point<float> 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<float> tl;
|
||||
Point<float> tr;
|
||||
Point<float> bl;
|
||||
Point<float> br;
|
||||
Rect<uint16_t> tex;
|
||||
WritingModeType writingMode;
|
||||
Point<float> pixelOffsetTL;
|
||||
Point<float> pixelOffsetBR;
|
||||
Point<float> glyphOffset;
|
||||
WritingModeType writingMode;
|
||||
bool isSDF;
|
||||
size_t sectionIndex;
|
||||
Point<float> minFontScale;
|
||||
};
|
||||
|
||||
using SymbolQuads = std::vector<SymbolQuad>;
|
||||
|
||||
Reference in New Issue
Block a user