diff --git a/Source/utils/display.h b/Source/utils/display.h index 7ccc46a8d..1f372b277 100644 --- a/Source/utils/display.h +++ b/Source/utils/display.h @@ -58,10 +58,13 @@ void OutputToLogical(T *x, T *y) #ifndef USE_SDL1 if (!renderer) return; + float scaleX; SDL_RenderGetScale(renderer, &scaleX, NULL); - *x = static_cast(*x / scaleX); - *y = static_cast(*y / scaleX); + float scaleDpi = GetDpiScalingFactor(); + float scale = scaleX / scaleDpi; + *x = static_cast(*x / scale); + *y = static_cast(*y / scale); SDL_Rect view; SDL_RenderGetViewport(renderer, &view); @@ -91,8 +94,10 @@ void LogicalToOutput(T *x, T *y) float scaleX; SDL_RenderGetScale(renderer, &scaleX, NULL); - *x = static_cast(*x * scaleX); - *y = static_cast(*y * scaleX); + float scaleDpi = GetDpiScalingFactor(); + float scale = scaleX / scaleDpi; + *x = static_cast(*x * scale); + *y = static_cast(*y * scale); #else if (!OutputRequiresScaling()) return;