Merge pull request #13922 from TryTwo/imgui_add_default_font

OSD/Imgui: Add a better default font
This commit is contained in:
JosJuice
2025-11-16 13:58:18 +01:00
committed by GitHub
4 changed files with 151 additions and 7 deletions

View File

@@ -3,7 +3,9 @@
#include "VideoCommon/OnScreenUI.h"
#include "Common/CommonPaths.h"
#include "Common/EnumMap.h"
#include "Common/FileUtil.h"
#include "Common/Profiler.h"
#include "Common/Timer.h"
@@ -74,11 +76,28 @@ bool OnScreenUI::Initialize(u32 width, u32 height, float scale)
}
// Font defaults
ImGuiIO& io = ImGui::GetIO();
m_imgui_textures.clear();
// Setup new font management behavior.
ImGui::GetIO().BackendFlags |=
ImGuiBackendFlags_RendererHasTextures | ImGuiBackendFlags_RendererHasVtxOffset;
// User supplied font
std::string file = File::GetUserPath(D_LOAD_IDX) + "OSD_Font.ttf";
bool font_exists = File::Exists(file);
if (!font_exists)
{
// Default supplied font
file = File::GetSysDirectory() + DIR_SEP + RESOURCES_DIR + DIR_SEP + "OSD_Font.ttf";
font_exists = File::Exists(file);
}
if (font_exists)
{
io.Fonts->Clear();
io.Fonts->AddFontFromFileTTF(file.c_str());
}
// Setup new font management behavior
io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures | ImGuiBackendFlags_RendererHasVtxOffset;
if (!RecompileImGuiPipeline())
return false;
@@ -443,7 +462,6 @@ void OnScreenUI::UpdateImguiTexture(ImTextureData* tex)
tex->SetTexID(static_cast<ImTextureID>(*font_tex.get()));
// Keeps the texture alive.
m_imgui_textures.push_back(std::move(font_tex));
tex->SetStatus(ImTextureStatus_OK);
}
else if (tex->Status == ImTextureStatus_WantUpdates)