Jelajahi Sumber

Implement user-defined cursor scaling

Ivan Savenko 1 tahun lalu
induk
melakukan
68e5cff276
2 mengubah file dengan 8 tambahan dan 1 penghapusan
  1. 3 1
      client/renderSDL/CursorHardware.cpp
  2. 5 0
      config/schemas/settings.json

+ 3 - 1
client/renderSDL/CursorHardware.cpp

@@ -48,7 +48,9 @@ void CursorHardware::setVisible(bool on)
 
 
 void CursorHardware::setImage(std::shared_ptr<IImage> image, const Point & pivotOffset)
 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 cursorDimensions = image->dimensions() * GH.screenHandler().getScalingFactor();
 	Point cursorDimensionsScaled = image->dimensions() * cursorScalingPercent / 100;
 	Point cursorDimensionsScaled = image->dimensions() * cursorScalingPercent / 100;
 	Point pivotOffsetScaled = pivotOffset * cursorScalingPercent / 100 / GH.screenHandler().getScalingFactor();
 	Point pivotOffsetScaled = pivotOffset * cursorScalingPercent / 100 / GH.screenHandler().getScalingFactor();

+ 5 - 0
config/schemas/settings.json

@@ -184,6 +184,7 @@
 				"targetfps",
 				"targetfps",
 				"vsync",
 				"vsync",
 				"fontsType",
 				"fontsType",
+				"cursorScalingFactor",
 				"fontScalingFactor",
 				"fontScalingFactor",
 				"upscalingFilter",
 				"upscalingFilter",
 				"fontUpscalingFilter",
 				"fontUpscalingFilter",
@@ -253,6 +254,10 @@
 					"enum" : [ "auto", "original", "scalable" ],
 					"enum" : [ "auto", "original", "scalable" ],
 					"default" : "auto"
 					"default" : "auto"
 				},
 				},
+				"cursorScalingFactor" : {
+					"type" : "number",
+					"default" : 1
+				},
 				"fontScalingFactor" : {
 				"fontScalingFactor" : {
 					"type" : "number",
 					"type" : "number",
 					"default" : 1
 					"default" : 1