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 <string_view>
|
||||||
|
|
||||||
#include "pass.hpp"
|
#include "pass.hpp"
|
||||||
|
#include "file.hpp"
|
||||||
|
|
||||||
class GFXBuffer;
|
class GFXBuffer;
|
||||||
class GFXCommandBuffer;
|
class GFXCommandBuffer;
|
||||||
|
@ -23,6 +24,8 @@ private:
|
||||||
void create_font_texture();
|
void create_font_texture();
|
||||||
void update_buffers(const ImDrawData& draw_data);
|
void update_buffers(const ImDrawData& draw_data);
|
||||||
|
|
||||||
|
std::unique_ptr<file::File> font_file;
|
||||||
|
|
||||||
GFXPipeline* pipeline = nullptr;
|
GFXPipeline* pipeline = nullptr;
|
||||||
GFXTexture* font_texture = nullptr;
|
GFXTexture* font_texture = nullptr;
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
#include <imgui.h>
|
#include <imgui.h>
|
||||||
|
|
||||||
#include "engine.hpp"
|
#include "engine.hpp"
|
||||||
#include "file.hpp"
|
|
||||||
#include "gfx.hpp"
|
#include "gfx.hpp"
|
||||||
#include "gfx_commandbuffer.hpp"
|
#include "gfx_commandbuffer.hpp"
|
||||||
#include "log.hpp"
|
#include "log.hpp"
|
||||||
|
@ -16,9 +15,7 @@ void ImGuiPass::initialize() {
|
||||||
io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset;
|
io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset;
|
||||||
io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;
|
io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;
|
||||||
|
|
||||||
#if !defined(PLATFORM_TVOS) && !defined(PLATFORM_IOS) && !defined(PLATFORM_WINDOWS)
|
|
||||||
load_font("OpenSans-Regular.ttf");
|
load_font("OpenSans-Regular.ttf");
|
||||||
#endif
|
|
||||||
create_font_texture();
|
create_font_texture();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,20 +148,20 @@ void ImGuiPass::load_font(const std::string_view filename) {
|
||||||
|
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
|
|
||||||
#if !defined(PLATFORM_IOS) || !defined(PLATFORM_TVOS)
|
|
||||||
if(io.Fonts->Fonts.empty()) {
|
if(io.Fonts->Fonts.empty()) {
|
||||||
auto file = file::open(file::app_domain / filename);
|
auto file = file::open(file::app_domain / filename);
|
||||||
if(file != std::nullopt) {
|
if(file != std::nullopt) {
|
||||||
file->read_all();
|
font_file = std::make_unique<file::File>(std::move(file.value()));
|
||||||
|
|
||||||
io.Fonts->AddFontFromMemoryTTF(file->cast_data<unsigned char>(), file->size(), 15.0 * platform::get_window_dpi(0));
|
font_file->read_all();
|
||||||
|
|
||||||
|
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);
|
ImGui::GetIO().FontGlobalScale = 1.0 / platform::get_window_dpi(0);
|
||||||
} else {
|
} else {
|
||||||
console::error(System::Renderer, "Failed to load font file for imgui!");
|
console::error(System::Renderer, "Failed to load font file for imgui!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImGuiPass::create_font_texture() {
|
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
|
//---- 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.
|
// 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_TRUETYPE_FILENAME "stb_truetype.h"
|
||||||
#define IMGUI_STB_RECT_PACK_FILENAME "stb_rect_pack.h"
|
//#define IMGUI_STB_RECT_PACK_FILENAME "stb_rect_pack.h"
|
||||||
//#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION
|
//#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION
|
||||||
//#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION
|
//#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION
|
||||||
|
|
||||||
|
|
Reference in a new issue