Multiresolution Support for mobile devices including safearea [Suggestion needed]

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Pijush Sarkar

Hey guys, I have been trying to make a simple puzzle game for mobile devices. But I did not find any suitable solution. I have made a code to solve this.

Project > Display > Window >
Mode = 2d
Aspect = expand

Note: My design PSD size is (800, 1280) and I want a fixed screen height size (1280), width could be anything, I will adjust the width by code. Also, this code adjusts safearea.

Please test the code guys. Let me know if you guys using any better solution.

var design_size = Vector2(800.0, 1280.0)
var design_ratio = design_size.x / design_size.y

var safe_area = OS.get_window_safe_area()

var screen_size = get_viewport().get_visible_rect().size
screen_size.y -= safe_area.position.y
var screen_ratio = screen_size.x / screen_size.y;

var new_size = screen_size

if(screen_ratio < design_ratio):
	var ww = design_size.y * screen_ratio
	var hh = ww / screen_ratio
	new_size = Vector2(ww, hh)
	get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_2D,SceneTree.STRETCH_ASPECT_EXPAND,new_size)
	get_viewport().set_size_override(true, new_size, Vector2(0, safe_area.position.y/2))