From 385202c27caa070e07eba098a1b968f9d466aaad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Martins?= Date: Wed, 10 Dec 2014 13:42:45 +0000 Subject: OSX FreeType: Add support for sub pixel font rendering. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-42839 Change-Id: Iea4552d766936a55fd177e4287591d2715202d9c Reviewed-by: Morten Johan Sørvig --- .../fontdatabases/mac/qcoretextfontdatabase.mm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/platformsupport/fontdatabases') diff --git a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm index 4c9c7b78db..1f000421cc 100644 --- a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm +++ b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm @@ -986,10 +986,20 @@ QFontEngine *QCoreTextFontDatabase::freeTypeFontEngine(const QFontDef &fontDef, QFontEngine::FaceId faceId; faceId.filename = filename; const bool antialias = !(fontDef.styleStrategy & QFont::NoAntialias); - const QFontEngineFT::GlyphFormat format = antialias ? QFontEngineFT::Format_A8 - : QFontEngineFT::Format_Mono; QScopedPointer engine(new QFontEngineFT(fontDef)); + QFontEngineFT::GlyphFormat format = QFontEngineFT::Format_Mono; + if (antialias) { + QFontEngine::SubpixelAntialiasingType subpixelType = subpixelAntialiasingTypeHint(); + if (subpixelType == QFontEngine::Subpixel_None || (fontDef.styleStrategy & QFont::NoSubpixelAntialias)) { + format = QFontEngineFT::Format_A8; + engine->subpixelType = QFontEngine::Subpixel_None; + } else { + format = QFontEngineFT::Format_A32; + engine->subpixelType = subpixelType; + } + } + if (!engine->init(faceId, antialias, format, fontData) || engine->invalid()) { qWarning() << "QCoreTextFontDatabase::freeTypefontEngine Failed to create engine"; return Q_NULLPTR; -- cgit v1.2.3