From 51f29b88da0a9f5379976479f3ddb433e524af8d Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Fri, 5 Feb 2016 15:24:46 +0100 Subject: Don't force antialiasing when it is turned off In the gray antialiasing code path for text on Windows, we check whether Cleartype is enabled in the system and, if it is, we forcibly enable gray antialiasing instead. But in this logic we did not consider the case where antialiasing is turned off entirely, i.e. when the style strategy is QFont::NoAntialias. We should never override no-antialias with antialias. [ChangeLog][Windows][Text] Made it possible to disable antialiasing for text when drawing into images. Task-number: QTBUG-47141 Change-Id: Ieb2beba8c2d02295abe6d9a98d2e63a2d39c9e6a Reviewed-by: Konstantin Ritt --- src/plugins/platforms/windows/qwindowsfontengine.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/platforms/windows/qwindowsfontengine.cpp b/src/plugins/platforms/windows/qwindowsfontengine.cpp index 05e2b0ca03..4f463dd77c 100644 --- a/src/plugins/platforms/windows/qwindowsfontengine.cpp +++ b/src/plugins/platforms/windows/qwindowsfontengine.cpp @@ -1149,7 +1149,9 @@ glyph_metrics_t QWindowsFontEngine::alphaMapBoundingBox(glyph_t glyph, QFixed, c QImage QWindowsFontEngine::alphaMapForGlyph(glyph_t glyph, const QTransform &xform) { HFONT font = hfont; - if (m_fontEngineData->clearTypeEnabled) { + + bool clearTypeTemporarilyDisabled = (m_fontEngineData->clearTypeEnabled && m_logfont.lfQuality != NONANTIALIASED_QUALITY); + if (clearTypeTemporarilyDisabled) { LOGFONT lf = m_logfont; lf.lfQuality = ANTIALIASED_QUALITY; font = CreateFontIndirect(&lf); @@ -1188,7 +1190,7 @@ QImage QWindowsFontEngine::alphaMapForGlyph(glyph_t glyph, const QTransform &xfo // Cleanup... delete mask; - if (m_fontEngineData->clearTypeEnabled) { + if (clearTypeTemporarilyDisabled) { DeleteObject(font); } -- cgit v1.2.3