From d9d31e4d51c3e4744988c6c557f7111bc1d13c9f Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Tue, 16 Aug 2022 13:16:21 +0200 Subject: [PATCH] Make fixed font more compact. Note that the negative glyph spacing is const here, regardless of the font scaling. The alternative of using proportional spacing in reality does not work as good as it sounds. With fractional scaling some of the glyphs will no longer land on exact pixel boundaries, which results in blurry text. Looking at the potential solutions for this problem is moot point, as with the non-fractional scale of 2x and glyph spacing of -2, there is no longer enough space separating some letters, which is especially visible in words like "common" or register "xmm", where the "mm" pair becomes joined. --- profiler/src/Fonts.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/profiler/src/Fonts.cpp b/profiler/src/Fonts.cpp index 7f802ca6..390ef5aa 100644 --- a/profiler/src/Fonts.cpp +++ b/profiler/src/Fonts.cpp @@ -36,11 +36,14 @@ void LoadFonts( float scale, ImFont*& cb_fixedWidth, ImFont*& cb_bigFont, ImFont ImFontConfig configMerge; configMerge.MergeMode = true; configMerge.FontBuilderFlags = ImGuiFreeTypeBuilderFlags_LightHinting; + ImFontConfig configFixed; + configFixed.FontBuilderFlags = ImGuiFreeTypeBuilderFlags_LightHinting; + configFixed.GlyphExtraSpacing.x = -1; io.Fonts->Clear(); io.Fonts->AddFontFromMemoryCompressedTTF( tracy::DroidSans_compressed_data, tracy::DroidSans_compressed_size, round( 15.0f * scale ), &configBasic, rangesBasic ); io.Fonts->AddFontFromMemoryCompressedTTF( tracy::FontAwesomeSolid_compressed_data, tracy::FontAwesomeSolid_compressed_size, round( 14.0f * scale ), &configMerge, rangesIcons ); - s_fixedWidth = cb_fixedWidth = io.Fonts->AddFontFromMemoryCompressedTTF( tracy::FiraCodeRetina_compressed_data, tracy::FiraCodeRetina_compressed_size, round( 15.0f * scale ), &configBasic ); + s_fixedWidth = cb_fixedWidth = io.Fonts->AddFontFromMemoryCompressedTTF( tracy::FiraCodeRetina_compressed_data, tracy::FiraCodeRetina_compressed_size, round( 15.0f * scale ), &configFixed ); s_bigFont = cb_bigFont = io.Fonts->AddFontFromMemoryCompressedTTF( tracy::DroidSans_compressed_data, tracy::DroidSans_compressed_size, round( 21.0f * scale ), &configBasic ); io.Fonts->AddFontFromMemoryCompressedTTF( tracy::FontAwesomeSolid_compressed_data, tracy::FontAwesomeSolid_compressed_size, round( 20.0f * scale ), &configMerge, rangesIcons ); s_smallFont = cb_smallFont = io.Fonts->AddFontFromMemoryCompressedTTF( tracy::DroidSans_compressed_data, tracy::DroidSans_compressed_size, round( 10.0f * scale ), &configBasic );