From bca73ef01e85d0aaee3a1b156ea0028851f7e416 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Mon, 24 Jul 2023 17:25:36 +0200 Subject: [PATCH] fix: Loading of custom fonts not working anymore --- .../imgui/include/misc/freetype/imgui_freetype.cpp | 6 ++++-- main/source/init/tasks.cpp | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/external/imgui/include/misc/freetype/imgui_freetype.cpp b/lib/external/imgui/include/misc/freetype/imgui_freetype.cpp index 503430a68..bfa6c1002 100644 --- a/lib/external/imgui/include/misc/freetype/imgui_freetype.cpp +++ b/lib/external/imgui/include/misc/freetype/imgui_freetype.cpp @@ -636,8 +636,10 @@ bool ImFontAtlasBuildWithFreeTypeEx(FT_Library ft_library, ImFontAtlas* atlas, u for (int src_i = 0; src_i < src_tmp_array.Size; src_i++) { ImFontBuildSrcDataFT& src_tmp = src_tmp_array[src_i]; - if (src_tmp.GlyphsCount == 0) - continue; + // IMHEX PATCH BEGIN + // if (src_tmp.GlyphsCount == 0) + // continue; + // IMHEX PATCH END // When merging fonts with MergeMode=true: // - We can have multiple input fonts writing into a same destination font. diff --git a/main/source/init/tasks.cpp b/main/source/init/tasks.cpp index 579d27c43..df879a165 100644 --- a/main/source/init/tasks.cpp +++ b/main/source/init/tasks.cpp @@ -198,8 +198,10 @@ namespace hex::init { // Load font related settings { std::fs::path fontFile = ContentRegistry::Settings::read("hex.builtin.setting.font", "hex.builtin.setting.font.font_path", ""); - if (!wolv::io::fs::exists(fontFile) || !wolv::io::fs::isRegularFile(fontFile)) + if (!wolv::io::fs::exists(fontFile) || !wolv::io::fs::isRegularFile(fontFile)) { + log::warn("Custom font file {} not found! Falling back to default font.", wolv::util::toUTF8String(fontFile)); fontFile.clear(); + } // If no custom font has been specified, search for a file called "font.ttf" in one of the resource folders if (fontFile.empty()) { @@ -284,7 +286,9 @@ namespace hex::init { fonts->AddFontDefault(&cfg); } else { auto font = fonts->AddFontFromFileTTF(wolv::util::toUTF8String(fontFile).c_str(), 0, &cfg, ranges.Data); - if (font == nullptr || font->ContainerAtlas == nullptr) { + if (font == nullptr) { + log::warn("Failed to load custom font! Falling back to default font."); + ImHexApi::System::impl::setFontSize(defaultFontSize); cfg.SizePixels = defaultFontSize; fonts->Clear();