Godot Version
4.3
Question
Hello
After changing the resolution ingame, the content appears in the top-left corner.
This only happens in Fullscreen and ExclusiceFullscreen Mode.
In Window mode, everything just works fine fine.
Here is the Script:
const set_resolution_list: Array = [
{ "name": "640 x 360 / 16:9", "resolution": Vector2i(640, 360) },
{ "name": "640 x 400 / 16:10", "resolution": Vector2i(640, 400) },
{ "name": "768 x 432 / 16:9", "resolution": Vector2i(768, 432) },
{ "name": "800 x 600 / 4:3", "resolution": Vector2i(800, 600) }
]
func _ready() -> void:
$Menus/HBoxContainer/SubMenus/SizeMenu/SizeLayout/ResolutionPopUp.connect("item_selected", Callable(self, "_on_Resolution_item_selected"))
func _on_Resolution_item_selected(index: int) -> void:
var current_screen_index = DisplayServer.window_get_current_screen()
var desktop_resolution = DisplayServer.screen_get_size(current_screen_index)
var resolution = set_resolution_list[index]["resolution"]
var sizefactor: int = int(round(desktop_resolution.y) / round(resolution.y))
if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
get_window().set_size(resolution - Vector2i(2, 2))
get_window().content_scale_size = resolution - Vector2i(2, 2)
else:
get_window().set_size(resolution)
get_window().content_scale_size = resolution
if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN:
get_window().size = resolution * sizefactor
elif DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
get_window().size = (resolution * sizefactor) - Vector2i(2, 2)
print((resolution * sizefactor) - Vector2i(2, 2))
elif DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_WINDOWED:
get_window().size = resolution * clamp(sizefactor - 1, 1, 12)
var screen_center = DisplayServer.screen_get_position() + DisplayServer.screen_get_size() / 2
var window_size = get_window().get_size_with_decorations()
get_window().set_position(screen_center - window_size / 2)
How can i control the position of my content?
If i use the same settings via Project Settings, everything is perfectly in the middle of the screen…
Thx for help