Apply anti-alias mode to fonts with GDI+

See #19049.
This commit is contained in:
Artur Wieczorek
2021-02-19 19:34:00 +01:00
parent ded4da5ce5
commit 182cd25d7c

View File

@@ -2056,27 +2056,27 @@ bool wxGDIPlusContext::SetAntialiasMode(wxAntialiasMode antialias)
if (m_antialias == antialias) if (m_antialias == antialias)
return true; return true;
// MinGW currently doesn't provide InterpolationModeInvalid in its headers, SmoothingMode antialiasMode;
// so use our own definition. TextRenderingHint textRenderingHint;
static const SmoothingMode
wxSmoothingModeInvalid = static_cast<SmoothingMode>(-1);
SmoothingMode antialiasMode = wxSmoothingModeInvalid;
switch (antialias) switch (antialias)
{ {
case wxANTIALIAS_DEFAULT: case wxANTIALIAS_DEFAULT:
antialiasMode = SmoothingModeHighQuality; antialiasMode = SmoothingModeHighQuality;
textRenderingHint = TextRenderingHintSystemDefault;
break; break;
case wxANTIALIAS_NONE: case wxANTIALIAS_NONE:
antialiasMode = SmoothingModeNone; antialiasMode = SmoothingModeNone;
textRenderingHint = TextRenderingHintSingleBitPerPixel;
break; break;
default:
wxFAIL_MSG("Unknown antialias mode");
return false;
} }
wxCHECK_MSG( antialiasMode != wxSmoothingModeInvalid, false, if ( m_context->SetSmoothingMode(antialiasMode) != Gdiplus::Ok ||
wxS("Unknown antialias mode") ); m_context->SetTextRenderingHint(textRenderingHint) != Gdiplus::Ok )
if ( m_context->SetSmoothingMode(antialiasMode) != Gdiplus::Ok )
return false; return false;
m_antialias = antialias; m_antialias = antialias;