summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>2016-02-05 15:24:46 +0100
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>2016-02-09 14:39:25 +0000
commit51f29b88da0a9f5379976479f3ddb433e524af8d (patch)
treedba654f854a0750449f0def29d5eb9387f35a6e4
parenta4fac65938fdee74c07d34727920fb74087f82c6 (diff)
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 <ritt.ks@gmail.com>
-rw-r--r--src/plugins/platforms/windows/qwindowsfontengine.cpp6
1 files 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);
}