antialiasing now disabled for small fonts

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11996 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2001-10-14 22:17:33 +00:00
parent 0cba94f21a
commit 493bdcc72a
2 changed files with 23 additions and 3 deletions

View File

@ -177,7 +177,6 @@ bool wxFont::Create(int pointSize,
struct font_t *wxFont::GetMGLfont_t(float scale, bool antialiased)
{
// FIXME_MGL -- no antialiasing for fonts smaller than certain treshold!
if ( !M_FONTDATA->m_valid )
{
wxMGLFontLibrary *old = M_FONTDATA->m_library;

View File

@ -30,6 +30,7 @@
#include "wx/listimpl.cpp"
#include "wx/sysopt.h"
#include "wx/mgl/private.h"
#include <mgraph.h>
@ -228,6 +229,8 @@ void wxMGLFontLibrary::DecRef()
}
}
static int gs_antialiasingThreshold = -1;
wxMGLFontInstance *wxMGLFontLibrary::GetFontInstance(wxFont *font,
float scale, bool aa)
{
@ -235,10 +238,28 @@ wxMGLFontInstance *wxMGLFontLibrary::GetFontInstance(wxFont *font,
wxString facename;
bool slant;
bool antialiased =
(m_fontLib->fontLibType == MGL_BITMAPFONT_LIB) ? FALSE : aa;
bool antialiased;
float pt = (float)font->GetPointSize() * scale;
if ( gs_antialiasingThreshold == -1 )
{
gs_antialiasingThreshold = 10;
#if wxUSE_SYSTEM_OPTIONS
if ( wxSystemOptions::HasOption(wxT("mgl.aa-threshold") )
gs_antialiasingThreshold =
wxSystemOptions::GetOptionInt(wxT("mgl.aa-threshold"));
wxLogTrace("mgl_font", "AA threshold set to %i", gs_antialiasingThreshold);
#endif
}
// Small characters don't look good when antialiased with the algorithm
// that FreeType uses (mere 2x2 supersampling), so lets disable it AA
// completely for small fonts.
if ( pt <= gs_antialiasingThreshold )
antialiased = FALSE;
else
antialiased = (m_fontLib->fontLibType == MGL_BITMAPFONT_LIB) ? FALSE : aa;
slant = (((m_type & wxFONTFACE_ITALIC) == 0) &&
(font->GetStyle() == wxSLANT || font->GetStyle() == wxITALIC));