From 68e5cff27631c74d6dd6905598babb2fa4a795b3 Mon Sep 17 00:00:00 2001 From: Ivan Savenko <saven.ivan@gmail.com> Date: Mon, 7 Oct 2024 19:34:28 +0000 Subject: [PATCH] Implement user-defined cursor scaling --- client/renderSDL/CursorHardware.cpp | 4 +++- config/schemas/settings.json | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/client/renderSDL/CursorHardware.cpp b/client/renderSDL/CursorHardware.cpp index c043a899e..b6e927023 100644 --- a/client/renderSDL/CursorHardware.cpp +++ b/client/renderSDL/CursorHardware.cpp @@ -48,7 +48,9 @@ void CursorHardware::setVisible(bool on) void CursorHardware::setImage(std::shared_ptr<IImage> image, const Point & pivotOffset) { - int cursorScalingPercent = settings["video"]["resolution"]["scaling"].Integer(); + int videoScalingSettings = settings["video"]["resolution"]["scaling"].Integer(); + float cursorScalingSettings = settings["video"]["cursorScalingFactor"].Float(); + int cursorScalingPercent = videoScalingSettings * cursorScalingSettings; Point cursorDimensions = image->dimensions() * GH.screenHandler().getScalingFactor(); Point cursorDimensionsScaled = image->dimensions() * cursorScalingPercent / 100; Point pivotOffsetScaled = pivotOffset * cursorScalingPercent / 100 / GH.screenHandler().getScalingFactor(); diff --git a/config/schemas/settings.json b/config/schemas/settings.json index 0d670baeb..93ae2038f 100644 --- a/config/schemas/settings.json +++ b/config/schemas/settings.json @@ -184,6 +184,7 @@ "targetfps", "vsync", "fontsType", + "cursorScalingFactor", "fontScalingFactor", "upscalingFilter", "fontUpscalingFilter", @@ -253,6 +254,10 @@ "enum" : [ "auto", "original", "scalable" ], "default" : "auto" }, + "cursorScalingFactor" : { + "type" : "number", + "default" : 1 + }, "fontScalingFactor" : { "type" : "number", "default" : 1