do not store the hinting flags in QFontEngineFT

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2022-11-14 21:08:39 +02:00
parent d6ec585fad
commit 385e7a50fc
2 changed files with 14 additions and 34 deletions

View file

@ -163,7 +163,6 @@ void QFreetypeFace::addGlyphToPath(FT_Outline outline, const QFixedPoint &point,
#ifndef QT_NO_FONTCONFIG
QFontEngineFT::QFontEngineFT(const QFontDef &fd, FcPattern *pattern)
: default_load_flags(FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH | FT_LOAD_NO_BITMAP),
default_hint_style(HintNone),
freetype(nullptr),
xsize(0),
ysize(0),
@ -197,7 +196,6 @@ QFontEngineFT::QFontEngineFT(const QFontDef &fd, FcPattern *pattern)
QFontEngineFT::QFontEngineFT(const QFontDef &fd)
: default_load_flags(FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH | FT_LOAD_NO_BITMAP),
default_hint_style(HintNone),
freetype(nullptr),
xsize(0),
ysize(0),
@ -241,22 +239,6 @@ void QFontEngineFT::init()
TT_OS2 *os2 = (TT_OS2 *)FT_Get_Sfnt_Table(face, ft_sfnt_os2);
if (os2)
fsType = os2->fsType;
switch (fontDef.hintingPreference) {
case QFont::PreferNoHinting: {
default_hint_style = HintNone;
break;
}
case QFont::PreferVerticalHinting: {
default_hint_style = HintLight;
break;
}
case QFont::PreferFullHinting:
default: {
default_hint_style = HintFull;
break;
}
}
}
QFontEngineFT::~QFontEngineFT()
@ -284,15 +266,20 @@ QFontEngineFT::~QFontEngineFT()
bool QFontEngineFT::loadGlyph(glyph_t glyph) const
{
int load_flags = default_load_flags;
if (default_hint_style == HintNone) {
load_flags |= FT_LOAD_NO_HINTING;
} else if (default_hint_style == HintLight) {
load_flags |= FT_LOAD_TARGET_LIGHT;
} else if (default_hint_style == HintFull) {
load_flags |= FT_LOAD_TARGET_LCD;
} else {
load_flags |= FT_LOAD_TARGET_MONO;
switch (fontDef.hintingPreference) {
case QFont::PreferNoHinting: {
load_flags |= FT_LOAD_NO_HINTING;
break;
}
case QFont::PreferVerticalHinting: {
load_flags |= FT_LOAD_TARGET_LIGHT;
break;
}
case QFont::PreferFullHinting:
default: {
load_flags |= FT_LOAD_TARGET_LCD;
break;
}
}
FT_Face face = freetype->face;

View file

@ -135,15 +135,8 @@ public:
inline bool invalid() const { return xsize == 0 && ysize == 0; }
enum HintStyle {
HintNone,
HintLight,
HintFull
};
protected:
int default_load_flags;
HintStyle default_hint_style;
private:
void init();