Non-mac platforms can finally load the proper imgui font
This commit is contained in:
parent
6b12689e5a
commit
73fa35b674
3 changed files with 9 additions and 9 deletions
|
@ -3,6 +3,7 @@
|
|||
#include <string_view>
|
||||
|
||||
#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<file::File> font_file;
|
||||
|
||||
GFXPipeline* pipeline = nullptr;
|
||||
GFXTexture* font_texture = nullptr;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include <imgui.h>
|
||||
|
||||
#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<file::File>(std::move(file.value()));
|
||||
|
||||
font_file->read_all();
|
||||
|
||||
io.Fonts->AddFontFromMemoryTTF(file->cast_data<unsigned char>(), file->size(), 15.0 * platform::get_window_dpi(0));
|
||||
io.Fonts->AddFontFromMemoryTTF(font_file->cast_data<unsigned char>(), 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() {
|
||||
|
|
4
extern/imgui/include/imconfig.h
vendored
4
extern/imgui/include/imconfig.h
vendored
|
@ -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
|
||||
|
||||
|
|
Reference in a new issue