summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiang Jiang <jiang.jiang@nokia.com>2011-12-01 11:21:28 +0100
committerQt by Nokia <qt-info@nokia.com>2011-12-04 23:39:34 +0100
commit6887a7e39543d9106b1eefcf0619188906d06fe7 (patch)
tree7608af3acf6b30a03fed04527fbe9d90ae229e50
parent7d2ab7f01d98edbb9402478fb6d68fab044bfa38 (diff)
Enable subpixel rendering for raster on Mac
Change-Id: I06e6465e03c17776974d361254abf5b750736080 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
-rw-r--r--src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm7
-rw-r--r--src/platformsupport/fontdatabases/mac/qfontengine_coretext.mm5
2 files changed, 11 insertions, 1 deletions
diff --git a/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm b/src/platformsupport/fontdatabases/mac/qcoretextfontdatabase.mm
index 45656a2061..6c3e403c51 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<const CFStringRef>(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 9a84dfc3dd..f71dcc2355 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;