From 6887a7e39543d9106b1eefcf0619188906d06fe7 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Thu, 1 Dec 2011 11:21:28 +0100 Subject: [PATCH] Enable subpixel rendering for raster on Mac MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change-Id: I06e6465e03c17776974d361254abf5b750736080 Reviewed-by: Jiang Jiang Reviewed-by: Morten Johan Sørvig --- src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm | 7 +++++++ src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm index 45656a2..6c3e403 100644 --- a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm +++ b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm @@ -88,6 +88,7 @@ inline QString qt_mac_NSStringToQString(const NSString *nsstr) { return QCFString::toQString(reinterpret_cast(nsstr)); } int qt_antialiasing_threshold = 0; +bool qt_enable_font_smoothing = true; QFont::StyleHint styleHintFromNSString(NSString *style) { @@ -123,6 +124,12 @@ QCoreTextFontDatabase::QCoreTextFontDatabase() QVariant appleValue = appleSettings.value(QLatin1String("AppleAntiAliasingThreshold")); if (appleValue.isValid()) qt_antialiasing_threshold = appleValue.toInt(); + + appleValue = appleSettings.value(QLatin1String("AppleFontSmoothing")); + // Only disable font smoothing when AppleFontSmoothing is set to 0, + // empty or non-zero means enabled + if (appleValue.isValid() && appleValue.toInt() == 0) + qt_enable_font_smoothing = false; } QCoreTextFontDatabase::~QCoreTextFontDatabase() diff --git a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm index 9a84dfc..f71dcc2 100644 --- a/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm +++ b/src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm @@ -400,7 +400,7 @@ void QCoreTextFontEngineMulti::loadEngine(int) Q_ASSERT(false); } -extern int qt_antialiasing_threshold; // from qapplication.cpp +extern int qt_antialiasing_threshold, qt_enable_font_smoothing; CGAffineTransform qt_transform_from_fontdef(const QFontDef &fontDef) { @@ -470,6 +470,9 @@ void QCoreTextFontEngine::init() Q_ASSERT(ctfont != NULL); Q_ASSERT(cgFont != NULL); + glyphFormat = qt_enable_font_smoothing ? QFontEngineGlyphCache::Raster_RGBMask + : QFontEngineGlyphCache::Raster_A8; + QCFString family = CTFontCopyFamilyName(ctfont); fontDef.family = family; -- 2.7.4