diff --git a/src/config.c b/src/config.c index 6498ac5..c8e3bce 100644 --- a/src/config.c +++ b/src/config.c @@ -367,7 +367,7 @@ static void cfg_create_ini() "rgb555=false\n" "no_dinput_hook=false\n" "refresh_rate=0\n" - "non_anti_aliased_fonts=true\n" + "anti_aliased_fonts_min_size=13\n" "custom_width=0\n" "custom_height=0\n" "min_font_size=0\n" diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c index 6c956bb..3b0ec4c 100644 --- a/src/winapi_hooks.c +++ b/src/winapi_hooks.c @@ -910,7 +910,15 @@ HFONT WINAPI fake_CreateFontIndirectA(CONST LOGFONTA* lplf) LOGFONTA lf; memcpy(&lf, lplf, sizeof(lf)); - if (cfg_get_bool("non_anti_aliased_fonts", TRUE)) + int minFontSize = cfg_get_int("min_font_size", 0); + if (lf.lfHeight < 0) { + lf.lfHeight = min(-minFontSize, lf.lfHeight); + } + else { + lf.lfHeight = max(minFontSize, lf.lfHeight); + } + + if (cfg_get_int("anti_aliased_fonts_min_size", 13) > abs(lf.lfHeight)) lf.lfQuality = NONANTIALIASED_QUALITY; return real_CreateFontIndirectA(&lf); @@ -932,9 +940,6 @@ HFONT WINAPI fake_CreateFontA( DWORD fdwPitchAndFamily, LPCTSTR lpszFace) { - if (cfg_get_bool("non_anti_aliased_fonts", TRUE)) - fdwQuality = NONANTIALIASED_QUALITY; - int minFontSize = cfg_get_int("min_font_size", 0); if (nHeight < 0) { nHeight = min(-minFontSize, nHeight); @@ -943,6 +948,9 @@ HFONT WINAPI fake_CreateFontA( nHeight = max(minFontSize, nHeight); } + if (cfg_get_int("anti_aliased_fonts_min_size", 13) > abs(nHeight)) + fdwQuality = NONANTIALIASED_QUALITY; + return real_CreateFontA( nHeight,