Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions project.godot
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ HandlerGUI="*res://src/autoload/HandlerGUI.gd"

[display]

window/size/viewport_width=720
window/size/viewport_height=1280
window/size/viewport_width=480
window/size/viewport_height=854
window/energy_saving/keep_screen_on=false
window/handheld/orientation=6
mouse_cursor/tooltip_position_offset=Vector2(0, 10)
Expand Down Expand Up @@ -375,5 +375,6 @@ locale/translations=PackedStringArray("res://translations/bg.po", "res://transla
[rendering]

renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"
textures/vram_compression/import_etc2_astc=true
environment/defaults/default_clear_color=Color(0.12, 0.132, 0.2, 1)
36 changes: 8 additions & 28 deletions src/autoload/HandlerGUI.gd
Original file line number Diff line number Diff line change
Expand Up @@ -409,34 +409,12 @@ func get_min_ui_scale(usable_screen_size: Vector2i) -> float:

func get_auto_ui_scale() -> float:
var dpi := DisplayServer.screen_get_dpi(DisplayServer.window_get_current_screen())

if dpi <= 120:
return 0.75
elif dpi <= 160:
return 1.0
elif dpi <= 200:
return 1.25
elif dpi <= 240:
return 1.5
elif dpi <= 280:
return 1.75
elif dpi <= 320:
return 2.0
elif dpi <= 360:
return 2.25
elif dpi <= 400:
return 2.5
elif dpi <= 440:
return 2.75
elif dpi <= 480:
return 3.0
elif dpi <= 560:
return 3.5
elif dpi <= 640:
return 4.0
else:
return 5.0

print(dpi)
var base_dpi := 160.0
var scale := dpi / base_dpi
var blend: float = clamp((dpi - 240.0) / 400.0, 0.0, 1.0)
var adjusted_scale: float = lerp(scale, pow(scale, 0.75), blend)
return max(adjusted_scale, 1.0)

func update_ui_scale() -> void:
var window := get_window()
Expand All @@ -452,7 +430,9 @@ func update_ui_scale() -> void:
SaveData.ScalingApproach.CONSTANT_150: final_scale = 1.50
SaveData.ScalingApproach.CONSTANT_175: final_scale = 1.75
SaveData.ScalingApproach.CONSTANT_200: final_scale = 2.0
SaveData.ScalingApproach.CONSTANT_225: final_scale = 2.25
SaveData.ScalingApproach.CONSTANT_250: final_scale = 2.5
SaveData.ScalingApproach.CONSTANT_275: final_scale = 2.75
SaveData.ScalingApproach.CONSTANT_300: final_scale = 3.0
SaveData.ScalingApproach.CONSTANT_400: final_scale = 4.0
window.content_scale_factor = final_scale
Expand Down
2 changes: 1 addition & 1 deletion src/config_classes/SaveData.gd
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ const HANDLE_SIZE_MAX = 4.0
Configs.handle_visuals_changed.emit()

enum ScalingApproach {AUTO, CONSTANT_075, CONSTANT_100, CONSTANT_125, CONSTANT_150,
CONSTANT_175, CONSTANT_200, CONSTANT_250, CONSTANT_300, CONSTANT_400, MAX}
CONSTANT_175, CONSTANT_200, CONSTANT_225, CONSTANT_250, CONSTANT_275, CONSTANT_300, CONSTANT_400, MAX}
@export var ui_scale := ScalingApproach.AUTO:
set(new_value):
# Validation
Expand Down
2 changes: 1 addition & 1 deletion src/ui_parts/display.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ unique_name_in_owner = true
disable_3d = true
handle_input_locally = false
gui_snap_controls_to_pixels = false
size = Vector2i(720, 1249)
size = Vector2i(480, 823)
size_2d_override_stretch = true
render_target_update_mode = 4
script = ExtResource("9_4xrk7")
Expand Down
41 changes: 20 additions & 21 deletions src/ui_parts/settings_menu.gd
Original file line number Diff line number Diff line change
Expand Up @@ -258,28 +258,27 @@ func setup_content() -> void:
"Changes the visual size and grabbing area of handles."))

current_setup_setting = "ui_scale"
var dropdown_values := [
SaveData.ScalingApproach.AUTO,
SaveData.ScalingApproach.CONSTANT_100,
SaveData.ScalingApproach.CONSTANT_125,
SaveData.ScalingApproach.CONSTANT_150,
SaveData.ScalingApproach.CONSTANT_175,
SaveData.ScalingApproach.CONSTANT_200,
SaveData.ScalingApproach.CONSTANT_250,
SaveData.ScalingApproach.CONSTANT_300
]
# Dictionary[SaveData.ScalingApproach, String]
var dropdown_map: Dictionary = {
SaveData.ScalingApproach.AUTO: "Auto (%d%%)" % int(HandlerGUI.get_auto_ui_scale()/ 1.5 * 100),
SaveData.ScalingApproach.CONSTANT_100: "66%",
SaveData.ScalingApproach.CONSTANT_125: "83%",
SaveData.ScalingApproach.CONSTANT_150: "100%",
SaveData.ScalingApproach.CONSTANT_175: "116%",
SaveData.ScalingApproach.CONSTANT_200: "133%",
SaveData.ScalingApproach.CONSTANT_250: "166%",
SaveData.ScalingApproach.CONSTANT_300: "200%"

var auto_scale: float = HandlerGUI.get_auto_ui_scale()
var all_options := {
SaveData.ScalingApproach.CONSTANT_100: 1.0,
SaveData.ScalingApproach.CONSTANT_125: 1.25,
SaveData.ScalingApproach.CONSTANT_150: 1.5,
SaveData.ScalingApproach.CONSTANT_175: 1.75,
SaveData.ScalingApproach.CONSTANT_200: 2.0,
SaveData.ScalingApproach.CONSTANT_225: 2.25,
SaveData.ScalingApproach.CONSTANT_250: 2.5,
SaveData.ScalingApproach.CONSTANT_275: 2.75,
SaveData.ScalingApproach.CONSTANT_300: 3.0
}
var dropdown_map := {
SaveData.ScalingApproach.AUTO: "Auto (%d%%)" % int(auto_scale * 100),
}
add_dropdown(Translator.translate("UI scale"), dropdown_values, dropdown_map)
for approach in all_options.keys():
var value: float= all_options[approach]
dropdown_map[approach] = "%d%%" % int(value * 100)

add_dropdown(Translator.translate("UI scale"), dropdown_map.keys(), dropdown_map)
add_advice(Translator.translate("Changes the scale factor for the interface."))
# Disable mouse wrap if not available.
if not DisplayServer.has_feature(DisplayServer.FEATURE_MOUSE_WARP):
Expand Down