From bbcc453ae2baf735a69a3361ea12ccb7465a16fe Mon Sep 17 00:00:00 2001 From: CocoSimone Date: Fri, 9 Dec 2022 05:40:32 +0100 Subject: [PATCH] DPI awareness, TODO: handle moving to different monitors --- src/frontend/imgui/Window.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/frontend/imgui/Window.cpp b/src/frontend/imgui/Window.cpp index c192450a..f837a909 100644 --- a/src/frontend/imgui/Window.cpp +++ b/src/frontend/imgui/Window.cpp @@ -5,6 +5,7 @@ #include #include #include +#include VkInstance instance{}; using json = nlohmann::json; @@ -116,6 +117,17 @@ void Window::InitImgui(const n64::Core& core) { uiFont = io.Fonts->AddFontFromFileTTF("resources/OpenSans.ttf", 15.f); codeFont = io.Fonts->AddFontFromFileTTF("resources/Sweet16.ttf", 15.f); + int displayIndex = SDL_GetWindowDisplayIndex(window); + float ddpi, hdpi, vdpi; + SDL_GetDisplayDPI(displayIndex, &ddpi, &hdpi, &vdpi); + + ddpi /= 96.f; + + uiFont = io.Fonts->AddFontFromFileTTF("resources/OpenSans.ttf", 16.f * ddpi); + codeFont = io.Fonts->AddFontFromFileTTF("resources/Sweet16.ttf", 16.f * ddpi); + + ImGui::GetStyle().ScaleAllSizes(ddpi); + { VkCommandBuffer commandBuffer = GetVkCommandBuffer(); ImGui_ImplVulkan_CreateFontsTexture(commandBuffer);