From 182cd25d7cc9b4a3663ab311ecbe3a2f18f0a378 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Fri, 19 Feb 2021 19:34:00 +0100 Subject: [PATCH] Apply anti-alias mode to fonts with GDI+ See #19049. --- src/msw/graphics.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/msw/graphics.cpp b/src/msw/graphics.cpp index 229772c7fd..8a0207a437 100644 --- a/src/msw/graphics.cpp +++ b/src/msw/graphics.cpp @@ -2056,27 +2056,27 @@ bool wxGDIPlusContext::SetAntialiasMode(wxAntialiasMode antialias) if (m_antialias == antialias) return true; - // MinGW currently doesn't provide InterpolationModeInvalid in its headers, - // so use our own definition. - static const SmoothingMode - wxSmoothingModeInvalid = static_cast(-1); - - SmoothingMode antialiasMode = wxSmoothingModeInvalid; + SmoothingMode antialiasMode; + TextRenderingHint textRenderingHint; switch (antialias) { case wxANTIALIAS_DEFAULT: antialiasMode = SmoothingModeHighQuality; + textRenderingHint = TextRenderingHintSystemDefault; break; case wxANTIALIAS_NONE: antialiasMode = SmoothingModeNone; + textRenderingHint = TextRenderingHintSingleBitPerPixel; break; + + default: + wxFAIL_MSG("Unknown antialias mode"); + return false; } - wxCHECK_MSG( antialiasMode != wxSmoothingModeInvalid, false, - wxS("Unknown antialias mode") ); - - if ( m_context->SetSmoothingMode(antialiasMode) != Gdiplus::Ok ) + if ( m_context->SetSmoothingMode(antialiasMode) != Gdiplus::Ok || + m_context->SetTextRenderingHint(textRenderingHint) != Gdiplus::Ok ) return false; m_antialias = antialias;