actually that helped, -> from here https://github.com/godotengine/godot-demo-projects/tree/master/viewport/3d_scaling
idea is scaling viewport itself, to match to window dimension. In that way landscape and portrait size will match.
extends Node
func _ready():
get_viewport().connect("size_changed", self, "_on_Viewport_size_changed")
func _on_Viewport_size_changed() -> void:
if OS.window_size.x > OS.window_size.y:
get_viewport().set_size_override(true, Vector2(320, 180)) # landscape
else:
get_viewport().set_size_override(true, Vector2(180, 320)) # portrait
p.s. one issue i had is DynamicFont getting blurred(lowrezed) so i decided to change Font to custom BitmapFont
results:
