summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/fontdatabases
diff options
context:
space:
mode:
Diffstat (limited to 'src/platformsupport/fontdatabases')
-rw-r--r--src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp15
-rw-r--r--src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h1
-rw-r--r--src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm12
-rw-r--r--src/platformsupport/fontdatabases/mac/qfontengine_coretext_p.h2
-rw-r--r--src/platformsupport/fontdatabases/windows/qwindowsfontengine.cpp12
-rw-r--r--src/platformsupport/fontdatabases/windows/qwindowsfontengine_p.h2
-rw-r--r--src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite.cpp16
-rw-r--r--src/platformsupport/fontdatabases/windows/qwindowsfontenginedirectwrite_p.h2
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());