From 5f8ee9300635acd465d22a74e6cb672d2a80b0d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Wed, 16 Jul 2025 20:20:33 +0200 Subject: [PATCH] Use a TTF font for fixed-width text in the debugger Fixes #20635 --- UI/EmuScreen.cpp | 8 +++++--- UI/ImDebugger/ImDebugger.cpp | 3 +++ assets/Inconsolata-Medium.ttf | Bin 0 -> 102172 bytes ext/imgui/imgui_impl_thin3d.cpp | 20 +++++++++++++++----- ext/imgui/imgui_impl_thin3d.h | 4 +++- 5 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 assets/Inconsolata-Medium.ttf diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index 44e6c8f022..24e2ed62d8 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -1822,11 +1822,13 @@ void EmuScreen::runImDebugger() { imDebugger_ = std::make_unique(); // Read the TTF font - size_t size = 0; - uint8_t *fontData = g_VFS.ReadFile("Roboto-Condensed.ttf", &size); + size_t propSize = 0; + uint8_t *propFontData = g_VFS.ReadFile("Roboto-Condensed.ttf", &propSize); + size_t fixedSize = 0; + uint8_t *fixedFontData = g_VFS.ReadFile("Inconsolata-Medium.ttf", &fixedSize); // This call works even if fontData is nullptr, in which case the font just won't get loaded. // This takes ownership of the font array. - ImGui_ImplThin3d_Init(draw, fontData, size); + ImGui_ImplThin3d_Init(draw, propFontData, propSize, fixedFontData, fixedSize); imguiInited_ = true; } diff --git a/UI/ImDebugger/ImDebugger.cpp b/UI/ImDebugger/ImDebugger.cpp index 62afba4405..3e39e2888a 100644 --- a/UI/ImDebugger/ImDebugger.cpp +++ b/UI/ImDebugger/ImDebugger.cpp @@ -381,6 +381,9 @@ void WaitIDToString(WaitType waitType, SceUID waitID, char *buffer, size_t bufSi case WAITTYPE_MICINPUT: truncate_cpy(buffer, bufSize, "-"); return; + case WAITTYPE_CTRL: + snprintf(buffer, bufSize, "ctrl: %d", waitID); + return; default: truncate_cpy(buffer, bufSize, "(unimpl)"); return; diff --git a/assets/Inconsolata-Medium.ttf b/assets/Inconsolata-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..258e6db68d9d9894f9e0fcd9cc56ef2e527c5486 GIT binary patch literal 102172 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 P{)rJjzJ?B`XG&F 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 literal 0 HcmV?d00001 diff --git a/ext/imgui/imgui_impl_thin3d.cpp b/ext/imgui/imgui_impl_thin3d.cpp index 75335a2457..4bef970ed8 100644 --- a/ext/imgui/imgui_impl_thin3d.cpp +++ b/ext/imgui/imgui_impl_thin3d.cpp @@ -290,15 +290,25 @@ void ImGui_ImplThin3d_DestroyDeviceObjects() { } } -bool ImGui_ImplThin3d_Init(Draw::DrawContext *draw, const uint8_t *ttf_font, size_t size) { +bool ImGui_ImplThin3d_Init(Draw::DrawContext *draw, + const uint8_t *ttf_font_proportional, size_t proportional_size, + const uint8_t *ttf_font_fixed, size_t fixed_size) { ImGuiIO& io = ImGui::GetIO(); - if (ttf_font) { - g_proportionalFont = io.Fonts->AddFontFromMemoryTTF((void *)ttf_font, (int)size, 21.0f / g_display.dpi_scale_x, nullptr, io.Fonts->GetGlyphRangesDefault()); + g_proportionalFont = nullptr; + if (ttf_font_proportional) { + g_proportionalFont = io.Fonts->AddFontFromMemoryTTF((void *)ttf_font_proportional, (int)proportional_size, 21.0f / g_display.dpi_scale_x, nullptr, io.Fonts->GetGlyphRangesDefault()); + } + if (ttf_font_fixed) { + g_fixedFont = io.Fonts->AddFontFromMemoryTTF((void *)ttf_font_fixed, (int)fixed_size, 20.0f / g_display.dpi_scale_x, nullptr, io.Fonts->GetGlyphRangesDefault()); } else { - // fallback + g_fixedFont = io.Fonts->AddFontDefault(); + } + + if (!g_proportionalFont) { g_proportionalFont = g_fixedFont; } - g_fixedFont = io.Fonts->AddFontDefault(); + + // g_fixedFont = io.Fonts->AddFontDefault(); ImGui::GetStyle().ScaleAllSizes(1.0f / g_display.dpi_scale_x); ImGui::GetStyle().Colors[ImGuiCol_Border] = ImColor(IM_COL32(0x2A, 0x2F, 0x3B, 0xFF)); diff --git a/ext/imgui/imgui_impl_thin3d.h b/ext/imgui/imgui_impl_thin3d.h index ab42c8168d..26f8386d59 100644 --- a/ext/imgui/imgui_impl_thin3d.h +++ b/ext/imgui/imgui_impl_thin3d.h @@ -34,7 +34,9 @@ #include "Common/Math/lin/matrix4x4.h" // Called by user code. Takes ownership of the font buffer and later deletes it. -IMGUI_IMPL_API bool ImGui_ImplThin3d_Init(Draw::DrawContext *draw, const uint8_t *ttf_font, size_t size); +IMGUI_IMPL_API bool ImGui_ImplThin3d_Init(Draw::DrawContext *draw, + const uint8_t *ttf_font_proportional, size_t proportional_size, + const uint8_t *ttf_font_fixed, size_t fixed_size); IMGUI_IMPL_API void ImGui_ImplThin3d_Shutdown(); IMGUI_IMPL_API void ImGui_ImplThin3d_NewFrame(Draw::DrawContext *draw, Lin::Matrix4x4 drawMatrix); IMGUI_IMPL_API void ImGui_ImplThin3d_RenderDrawData(ImDrawData* draw_data, Draw::DrawContext *draw);