diff --git a/data/font_awesome_6_1_1_solid.min.otf b/data/font_awesome_6_1_1_solid.min.otf new file mode 100644 index 0000000000..0e46b7a47e Binary files /dev/null and b/data/font_awesome_6_1_1_solid.min.otf differ diff --git a/data/meson.build b/data/meson.build index bb2084bc1c..4a82350d44 100644 --- a/data/meson.build +++ b/data/meson.build @@ -7,7 +7,7 @@ pfiles = [ 'abxy.ttf', 'Roboto-Medium.ttf', 'RobotoCondensed-Regular.ttf', - 'font_awesome_6_1_1_solid.otf', + 'font_awesome_6_1_1_solid.min.otf', # Update glyphs with scripts/gen-min-fa-font.sh ] libpfile_targets = [] diff --git a/scripts/gen-min-fa-font.sh b/scripts/gen-min-fa-font.sh new file mode 100755 index 0000000000..b55b3c5809 --- /dev/null +++ b/scripts/gen-min-fa-font.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -ex +# uv tool install fonttools +FONT_INPUT=font_awesome_6_1_1_solid.otf +FONT_OUTPUT=font_awesome_6_1_1_solid.min.otf +GLYPHS=$(grep -rhoE "ICON_FA_\w+" ../ui/xui | sort | uniq | sed -E 's/^ICON_FA_//; s/_/-/g; s/.*/\L&/' | paste -sd ",") +pyftsubset $FONT_INPUT --output-file=$FONT_OUTPUT --glyphs=$GLYPHS diff --git a/ui/xui/font-manager.cc b/ui/xui/font-manager.cc index 6dadbc74b0..7074d6f893 100644 --- a/ui/xui/font-manager.cc +++ b/ui/xui/font-manager.cc @@ -21,7 +21,7 @@ #include "data/Roboto-Medium.ttf.h" #include "data/RobotoCondensed-Regular.ttf.h" -#include "data/font_awesome_6_1_1_solid.otf.h" +#include "data/font_awesome_6_1_1_solid.min.otf.h" #include "data/abxy.ttf.h" FontManager g_font_mgr; @@ -81,8 +81,8 @@ void FontManager::Rebuild() ImVec2(0, -3 * g_viewport_mgr.m_scale * m_font_scale); config.GlyphMinAdvanceX = 32.0f * g_viewport_mgr.m_scale * m_font_scale; static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 }; - io.Fonts->AddFontFromMemoryTTF((void *)font_awesome_6_1_1_solid_data, - font_awesome_6_1_1_solid_size, + io.Fonts->AddFontFromMemoryTTF((void *)font_awesome_6_1_1_solid_min_data, + font_awesome_6_1_1_solid_min_size, 18.0f * g_viewport_mgr.m_scale * m_font_scale, &config, icon_ranges);