mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-20 15:27:32 +09:00
Issue #457 - Remove the constructor from gfxShapedText::CompressedGlyph and make it a trivial class
Also provide a couple of convenience "factory" methods to create simple and complex glyph values.
This commit is contained in:
parent
1cdbf6eb6a
commit
c782076add
9 changed files with 137 additions and 102 deletions
|
|
@ -62,13 +62,14 @@ void
|
|||
gfxFT2Font::AddRange(const char16_t *aText, uint32_t aOffset,
|
||||
uint32_t aLength, gfxShapedText *aShapedText)
|
||||
{
|
||||
typedef gfxShapedText::CompressedGlyph CompressedGlyph;
|
||||
|
||||
const uint32_t appUnitsPerDevUnit = aShapedText->GetAppUnitsPerDevUnit();
|
||||
// we'll pass this in/figure it out dynamically, but at this point there can be only one face.
|
||||
gfxFT2LockedFace faceLock(this);
|
||||
FT_Face face = faceLock.get();
|
||||
|
||||
gfxShapedText::CompressedGlyph *charGlyphs =
|
||||
aShapedText->GetCharacterGlyphs();
|
||||
CompressedGlyph* charGlyphs = aShapedText->GetCharacterGlyphs();
|
||||
|
||||
const gfxFT2Font::CachedGlyphData *cgd = nullptr, *cgdNext = nullptr;
|
||||
|
||||
|
|
@ -135,8 +136,8 @@ gfxFT2Font::AddRange(const char16_t *aText, uint32_t aOffset,
|
|||
}
|
||||
|
||||
if (advance >= 0 &&
|
||||
gfxShapedText::CompressedGlyph::IsSimpleAdvance(advance) &&
|
||||
gfxShapedText::CompressedGlyph::IsSimpleGlyphID(gid)) {
|
||||
CompressedGlyph::IsSimpleAdvance(advance) &&
|
||||
CompressedGlyph::IsSimpleGlyphID(gid)) {
|
||||
charGlyphs[aOffset].SetSimpleGlyph(advance, gid);
|
||||
} else if (gid == 0) {
|
||||
// gid = 0 only happens when the glyph is missing from the font
|
||||
|
|
@ -149,9 +150,11 @@ gfxFT2Font::AddRange(const char16_t *aText, uint32_t aOffset,
|
|||
details.mAdvance = advance;
|
||||
details.mXOffset = 0;
|
||||
details.mYOffset = 0;
|
||||
gfxShapedText::CompressedGlyph g;
|
||||
g.SetComplex(charGlyphs[aOffset].IsClusterStart(), true, 1);
|
||||
aShapedText->SetGlyphs(aOffset, g, &details);
|
||||
bool isClusterStart = charGlyphs[aOffset].IsClusterStart();
|
||||
aShapedText->SetGlyphs(aOffset,
|
||||
CompressedGlyph::MakeComplex(isClusterStart,
|
||||
true, 1),
|
||||
&details);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue