diff --git a/src/core/host_interface.cpp b/src/core/host_interface.cpp index 3123fbcc3..8f6ed75cb 100644 --- a/src/core/host_interface.cpp +++ b/src/core/host_interface.cpp @@ -12,8 +12,8 @@ #include "spu.h" #include "system.h" #include "timers.h" -#include #include +#include #include Log_SetChannel(HostInterface); @@ -113,8 +113,10 @@ void HostInterface::DrawFPSWindow() if (!(show_fps | show_vps | show_speed)) return; - ImGui::SetNextWindowPos(ImVec2(ImGui::GetIO().DisplaySize.x - 175.0f, 0.0f), ImGuiCond_Always); - ImGui::SetNextWindowSize(ImVec2(175.0f, 16.0f)); + const ImVec2 window_size = + ImVec2(175.0f * ImGui::GetIO().DisplayFramebufferScale.x, 16.0f * ImGui::GetIO().DisplayFramebufferScale.y); + ImGui::SetNextWindowPos(ImVec2(ImGui::GetIO().DisplaySize.x - window_size.x, 0.0f), ImGuiCond_Always); + ImGui::SetNextWindowSize(window_size); if (!ImGui::Begin("FPSWindow", nullptr, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse | diff --git a/src/duckstation-qt/qtdisplaywindow.cpp b/src/duckstation-qt/qtdisplaywindow.cpp index 8258ac124..6bd9b00e9 100644 --- a/src/duckstation-qt/qtdisplaywindow.cpp +++ b/src/duckstation-qt/qtdisplaywindow.cpp @@ -45,6 +45,12 @@ bool QtDisplayWindow::createImGuiContext() io.DisplaySize.x = static_cast(m_window_width); io.DisplaySize.y = static_cast(m_window_height); + const float framebuffer_scale = static_cast(devicePixelRatio()); + io.DisplayFramebufferScale.x = framebuffer_scale; + io.DisplayFramebufferScale.y = framebuffer_scale; + io.FontGlobalScale = framebuffer_scale; + ImGui::GetStyle().ScaleAllSizes(framebuffer_scale); + return true; } @@ -95,7 +101,7 @@ void QtDisplayWindow::keyReleaseEvent(QKeyEvent* event) void QtDisplayWindow::resizeEvent(QResizeEvent* event) { QWindow::resizeEvent(event); - + const int width = static_cast(static_cast(event->size().width()) * devicePixelRatio()); const int height = static_cast(static_cast(event->size().height()) * devicePixelRatio()); emit windowResizedEvent(width, height);