From 547532b28c2c61182adebb1dcc7a733793ae4313 Mon Sep 17 00:00:00 2001 From: dijunkun Date: Fri, 13 Feb 2026 01:26:10 +0800 Subject: [PATCH] [fix] fix server window scaling issues on high-DPI displays --- src/gui/render.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/gui/render.cpp b/src/gui/render.cpp index d9cdc72..2a5a7fc 100644 --- a/src/gui/render.cpp +++ b/src/gui/render.cpp @@ -1393,23 +1393,19 @@ int Render::DrawServerWindow() { LOG_ERROR("Server context is null"); return -1; } - - if (server_window_) { - int w = 0; - int h = 0; - SDL_GetWindowSize(server_window_, &w, &h); - if (w > 0 && h > 0) { - server_window_width_ = (float)w; - server_window_height_ = (float)h; - } - } - ImGui::SetCurrentContext(server_ctx_); ImGui_ImplSDLRenderer3_NewFrame(); ImGui_ImplSDL3_NewFrame(); ImGui::NewFrame(); + + ImGuiIO& io = ImGui::GetIO(); + server_window_width_ = io.DisplaySize.x; + server_window_height_ = io.DisplaySize.y; + ServerWindow(); ImGui::Render(); + SDL_SetRenderScale(server_renderer_, io.DisplayFramebufferScale.x, + io.DisplayFramebufferScale.y); SDL_SetRenderDrawColor(server_renderer_, 255, 255, 255, 255); SDL_RenderClear(server_renderer_); ImGui_ImplSDLRenderer3_RenderDrawData(ImGui::GetDrawData(), server_renderer_);