From 73fa35b6740f4191767203cfff76dbfd9a5a56bc Mon Sep 17 00:00:00 2001 From: redstrate <54911369+redstrate@users.noreply.github.com> Date: Fri, 5 Feb 2021 20:05:10 -0500 Subject: [PATCH] Non-mac platforms can finally load the proper imgui font --- engine/renderer/include/imguipass.hpp | 3 +++ engine/renderer/src/imguipass.cpp | 11 ++++------- extern/imgui/include/imconfig.h | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/engine/renderer/include/imguipass.hpp b/engine/renderer/include/imguipass.hpp index 6ccc7b4..ab6f23a 100755 --- a/engine/renderer/include/imguipass.hpp +++ b/engine/renderer/include/imguipass.hpp @@ -3,6 +3,7 @@ #include #include "pass.hpp" +#include "file.hpp" class GFXBuffer; class GFXCommandBuffer; @@ -22,6 +23,8 @@ private: void load_font(const std::string_view filename); void create_font_texture(); void update_buffers(const ImDrawData& draw_data); + + std::unique_ptr font_file; GFXPipeline* pipeline = nullptr; GFXTexture* font_texture = nullptr; diff --git a/engine/renderer/src/imguipass.cpp b/engine/renderer/src/imguipass.cpp index f7bdff8..7d4af48 100755 --- a/engine/renderer/src/imguipass.cpp +++ b/engine/renderer/src/imguipass.cpp @@ -3,7 +3,6 @@ #include #include "engine.hpp" -#include "file.hpp" #include "gfx.hpp" #include "gfx_commandbuffer.hpp" #include "log.hpp" @@ -16,9 +15,7 @@ void ImGuiPass::initialize() { io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset; io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports; -#if !defined(PLATFORM_TVOS) && !defined(PLATFORM_IOS) && !defined(PLATFORM_WINDOWS) load_font("OpenSans-Regular.ttf"); -#endif create_font_texture(); } @@ -151,20 +148,20 @@ void ImGuiPass::load_font(const std::string_view filename) { ImGuiIO& io = ImGui::GetIO(); -#if !defined(PLATFORM_IOS) || !defined(PLATFORM_TVOS) if(io.Fonts->Fonts.empty()) { auto file = file::open(file::app_domain / filename); if(file != std::nullopt) { - file->read_all(); + font_file = std::make_unique(std::move(file.value())); + + font_file->read_all(); - io.Fonts->AddFontFromMemoryTTF(file->cast_data(), file->size(), 15.0 * platform::get_window_dpi(0)); + io.Fonts->AddFontFromMemoryTTF(font_file->cast_data(), font_file->size(), 15.0 * platform::get_window_dpi(0)); ImGui::GetIO().FontGlobalScale = 1.0 / platform::get_window_dpi(0); } else { console::error(System::Renderer, "Failed to load font file for imgui!"); return; } } -#endif } void ImGuiPass::create_font_texture() { diff --git a/extern/imgui/include/imconfig.h b/extern/imgui/include/imconfig.h index 0ac4faa..e9ccca3 100644 --- a/extern/imgui/include/imconfig.h +++ b/extern/imgui/include/imconfig.h @@ -55,8 +55,8 @@ //---- Avoid multiple STB libraries implementations, or redefine path/filenames to prioritize another version // By default the embedded implementations are declared static and not available outside of imgui cpp files. -#define IMGUI_STB_TRUETYPE_FILENAME "stb_truetype.h" -#define IMGUI_STB_RECT_PACK_FILENAME "stb_rect_pack.h" +//#define IMGUI_STB_TRUETYPE_FILENAME "stb_truetype.h" +//#define IMGUI_STB_RECT_PACK_FILENAME "stb_rect_pack.h" //#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION //#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION