diff options
Diffstat (limited to 'src/platformsupport/fontdatabases')
8 files changed, 24 insertions, 38 deletions
diff --git a/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp b/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp index 910a16bf95..1c9a17a3e4 100644 --- a/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp +++ b/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp @@ -1243,6 +1243,10 @@ int QFontEngineFT::synthesized() const void QFontEngineFT::initializeHeightMetrics() const { + m_ascent = QFixed::fromFixed(metrics.ascender); + m_descent = QFixed::fromFixed(-metrics.descender); + m_leading = QFixed::fromFixed(metrics.height - metrics.ascender + metrics.descender); + QFontEngine::initializeHeightMetrics(); if (scalableBitmapScaleFactor != 1) { @@ -1252,17 +1256,6 @@ void QFontEngineFT::initializeHeightMetrics() const } } -bool QFontEngineFT::processHheaTable() const -{ - if (!QFontEngine::processHheaTable()) { - m_ascent = QFixed::fromFixed(metrics.ascender); - m_descent = QFixed::fromFixed(-metrics.descender); - m_leading = QFixed::fromFixed(metrics.height - metrics.ascender + metrics.descender); - } - - return true; -} - QFixed QFontEngineFT::capHeight() const { TT_OS2 *os2 = (TT_OS2 *)FT_Get_Sfnt_Table(freetype->face, ft_sfnt_os2); diff --git a/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h b/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h index f8eca7e267..bc48963a9e 100644 --- a/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h +++ b/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h @@ -192,7 +192,6 @@ private: int synthesized() const override; void initializeHeightMetrics() const override; - bool processHheaTable() const override; QFixed capHeight() const override; QFixed xHeight() const override; QFixed averageCharWidth() const override; diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm index 7a6dfe266f..57fbf6032e 100644 --- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm +++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm @@ -381,15 +381,13 @@ QT_WARNING_POP return ret; } -bool QCoreTextFontEngine::processHheaTable() const +void QCoreTextFontEngine::initializeHeightMetrics() const { - if (!QFontEngine::processHheaTable()) { - m_ascent = QFixed::fromReal(CTFontGetAscent(ctfont)); - m_descent = QFixed::fromReal(CTFontGetDescent(ctfont)); - m_leading = QFixed::fromReal(CTFontGetLeading(ctfont)); - } + m_ascent = QFixed::fromReal(CTFontGetAscent(ctfont)); + m_descent = QFixed::fromReal(CTFontGetDescent(ctfont)); + m_leading = QFixed::fromReal(CTFontGetLeading(ctfont)); - return true; + QFontEngine::initializeHeightMetrics(); } QFixed QCoreTextFontEngine::capHeight() const diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h b/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h index 5111e2ce2e..da75594fde 100644 --- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h +++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h @@ -139,7 +139,7 @@ protected: bool hasColorGlyphs() const; bool shouldAntialias() const; bool shouldSmoothFont() const; - bool processHheaTable() const override; + void initializeHeightMetrics() const override; QCFType<CTFontRef> ctfont; QCFType<CGFontRef> cgFont; diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontengine.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontengine.cpp index 6c1088c019..6248041a3d 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontengine.cpp +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontengine.cpp @@ -610,15 +610,13 @@ void QWindowsFontEngine::getGlyphBearings(glyph_t glyph, qreal *leftBearing, qre } #endif // Q_CC_MINGW -bool QWindowsFontEngine::processHheaTable() const +void QWindowsFontEngine::initializeHeightMetrics() const { - if (!QFontEngine::processHheaTable()) { - m_ascent = tm.tmAscent; - m_descent = tm.tmDescent; - m_leading = tm.tmExternalLeading; - } + m_ascent = tm.tmAscent; + m_descent = tm.tmDescent; + m_leading = tm.tmExternalLeading; - return true; + QFontEngine::initializeHeightMetrics(); } bool QWindowsFontEngine::hasUnreliableGlyphOutline() const diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h b/src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h index 4f5629dd0f..8a676affcd 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h @@ -130,7 +130,7 @@ public: void setUniqueFamilyName(const QString &newName) { uniqueFamilyName = newName; } protected: - bool processHheaTable() const override; + void initializeHeightMetrics() const override; private: QWindowsNativeImage *drawGDIGlyph(HFONT font, glyph_t, int margin, const QTransform &xform, diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp b/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp index 7e5c1a2a9e..6c9d4b29a0 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp @@ -343,18 +343,16 @@ QString QWindowsFontEngineDirectWrite::filenameFromFontFile(IDWriteFontFile *fon return ret; } -bool QWindowsFontEngineDirectWrite::processHheaTable() const +void QWindowsFontEngineDirectWrite::initializeHeightMetrics() const { - if (!QFontEngine::processHheaTable()) { - DWRITE_FONT_METRICS metrics; - m_directWriteFontFace->GetMetrics(&metrics); + DWRITE_FONT_METRICS metrics; + m_directWriteFontFace->GetMetrics(&metrics); - m_ascent = DESIGN_TO_LOGICAL(metrics.ascent); - m_descent = DESIGN_TO_LOGICAL(metrics.descent); - m_leading = DESIGN_TO_LOGICAL(metrics.lineGap); - } + m_ascent = DESIGN_TO_LOGICAL(metrics.ascent); + m_descent = DESIGN_TO_LOGICAL(metrics.descent); + m_leading = DESIGN_TO_LOGICAL(metrics.lineGap); - return true; + QFontEngine::initializeHeightMetrics(); } void QWindowsFontEngineDirectWrite::collectMetrics() diff --git a/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite_p.h b/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite_p.h index ccef808486..6e79190ce4 100644 --- a/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite_p.h +++ b/src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite_p.h @@ -122,7 +122,7 @@ public: void setUniqueFamilyName(const QString &newName) { m_uniqueFamilyName = newName; } - bool processHheaTable() const override; + void initializeHeightMetrics() const override; private: QImage imageForGlyph(glyph_t t, QFixed subPixelPosition, int margin, const QTransform &xform, const QColor &color = QColor()); |