OSDN Git Service

do not store the hinting flags in QFontEngineFT
authorIvailo Monev <xakepa10@gmail.com>
Mon, 14 Nov 2022 19:08:39 +0000 (21:08 +0200)
committerIvailo Monev <xakepa10@gmail.com>
Mon, 14 Nov 2022 19:08:39 +0000 (21:08 +0200)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/gui/text/qfontengine_ft.cpp
src/gui/text/qfontengine_ft_p.h

index 8822de5..a6139eb 100644 (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;
index 35ce69e..564ac05 100644 (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();