From 5e0fb9e36e43434ef1a1d712973f7f8d19471f85 Mon Sep 17 00:00:00 2001 From: Justin Scofield <47263509+scawful@users.noreply.github.com> Date: Sun, 5 Jan 2025 20:54:56 -0500 Subject: [PATCH] Add ReloadPackageFonts --- src/app/core/platform/font_loader.cc | 12 ++++++++++++ src/app/core/platform/font_loader.h | 2 ++ src/app/gui/icons.h | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/app/core/platform/font_loader.cc b/src/app/core/platform/font_loader.cc index 58ff2b91..1ff30a64 100644 --- a/src/app/core/platform/font_loader.cc +++ b/src/app/core/platform/font_loader.cc @@ -134,6 +134,18 @@ absl::Status LoadPackageFonts() { return absl::OkStatus(); } +absl::Status ReloadPackageFont(const FontConfig& config) { + ImGuiIO& io = ImGui::GetIO(); + std::string actual_font_path = SetFontPath(config.font_path); + if (!io.Fonts->AddFontFromFileTTF(actual_font_path.data(), config.font_size)) { + return absl::InternalError( + absl::StrFormat("Failed to load font from %s", actual_font_path)); + } + RETURN_IF_ERROR(AddIconFont()); + RETURN_IF_ERROR(AddJapaneseFont()); + return absl::OkStatus(); +} + #ifdef _WIN32 #include diff --git a/src/app/core/platform/font_loader.h b/src/app/core/platform/font_loader.h index 50d07ab4..3e37d6c3 100644 --- a/src/app/core/platform/font_loader.h +++ b/src/app/core/platform/font_loader.h @@ -13,6 +13,8 @@ struct FontConfig { absl::Status LoadPackageFonts(); +absl::Status ReloadPackageFont(const FontConfig& config); + void LoadSystemFonts(); } // namespace core diff --git a/src/app/gui/icons.h b/src/app/gui/icons.h index 11748e17..59647b04 100644 --- a/src/app/gui/icons.h +++ b/src/app/gui/icons.h @@ -3,7 +3,7 @@ // for use with https://github.com/google/material-design-icons/blob/master/font/MaterialIcons-Regular.ttf #pragma once -#define FONT_ICON_FILE_NAME_MD "assets/font/MaterialIcons-Regular.ttf" +#define FONT_ICON_FILE_NAME_MD "MaterialIcons-Regular.ttf" #define ICON_MIN_MD 0xe000 #define ICON_MAX_MD 0x10fffd