mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2025-12-16 13:30:07 +01:00
Update Multiple Resolutions demo for Godot 4.0
This commit is contained in:
@@ -31,21 +31,25 @@ overscan area to prevent GUI elements from being cut off. This can also improve
|
||||
the gameplay experience on large monitors by bringing HUD elements closer to the
|
||||
center of the screen.
|
||||
|
||||
A DynamicFont is also used to ensure font rendering remains crisp at high
|
||||
resolutions, thanks to Godot's built-in support for font oversampling. In other
|
||||
words, the engine will automatically re-rasterize fonts at different resolutions
|
||||
than the base window size when the window is resized (or when the window scale
|
||||
factor is changed).
|
||||
A DynamicFont with multichannel signed distance field (MSDF) rendering is also used.
|
||||
This allows for crisp font rendering at any resolution, without having to re-rasterize
|
||||
the font when the font size changes. This makes changing the various settings in this
|
||||
demo faster, especially when large font sizes are used as a result of the GUI scale factor
|
||||
setting being increased.
|
||||
|
||||
Note that by default, Godot uses font oversampling for traditional rasterized
|
||||
DynamicFonts. This means MSDF fonts are *not* required to have crisp fonts at
|
||||
higher-than-default screen resolutions.
|
||||
|
||||
Language: GDScript
|
||||
|
||||
Renderer: GLES 2
|
||||
Renderer: Vulkan Mobile
|
||||
|
||||
## Technical notes
|
||||
|
||||
The demo works with the following project settings:
|
||||
|
||||
- `2d` stretch mode (recommended for most non-pixel art games).
|
||||
- `canvas_items` stretch mode (formerly `2d`). Recommended for most non-pixel art games.
|
||||
- `expand` stretch aspect (allows support for multiple aspect ratios without
|
||||
distortion or black bars).
|
||||
- Using a base window size with a 1:1 aspect ratio (`648×648` in this demo).
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cx2c0cunh0e1i"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@@ -10,26 +11,24 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
||||
@@ -8,15 +8,15 @@ var base_window_size = Vector2(ProjectSettings.get_setting("display/window/size/
|
||||
|
||||
# These defaults match this demo's project settings. Adjust as needed if adapting this
|
||||
# in your own project.
|
||||
var stretch_mode = SceneTree.STRETCH_MODE_2D
|
||||
var stretch_aspect = SceneTree.STRETCH_ASPECT_EXPAND
|
||||
var stretch_mode = Window.CONTENT_SCALE_MODE_CANVAS_ITEMS
|
||||
var stretch_aspect = Window.CONTENT_SCALE_ASPECT_EXPAND
|
||||
|
||||
var scale_factor = 1.0
|
||||
var gui_aspect_ratio = -1.0
|
||||
var gui_margin = 0.0
|
||||
|
||||
onready var panel = $Panel
|
||||
onready var arc = $Panel/AspectRatioContainer
|
||||
@onready var panel = $Panel
|
||||
@onready var arc = $Panel/AspectRatioContainer
|
||||
|
||||
|
||||
func _ready():
|
||||
@@ -24,36 +24,36 @@ func _ready():
|
||||
# is resized whenever the window size changes. This is because the root Control node
|
||||
# uses a Full Rect anchor, so its size will always be equal to the window size.
|
||||
# warning-ignore:return_value_discarded
|
||||
connect("resized", self, "_on_resized")
|
||||
connect("resized", self._on_resized)
|
||||
update_container()
|
||||
|
||||
|
||||
func update_container():
|
||||
# The code within this function needs to be run twice to work around an issue with containers
|
||||
# having a 1-frame delay with updates.
|
||||
# Otherwise, `panel.rect_size` returns a value of the previous frame, which results in incorrect
|
||||
# Otherwise, `panel.size` returns a value of the previous frame, which results in incorrect
|
||||
# sizing of the inner AspectRatioContainer when using the Fit to Window setting.
|
||||
for _i in 2:
|
||||
if is_equal_approx(gui_aspect_ratio, -1.0):
|
||||
# Fit to Window. Tell the AspectRatioContainer to use the same aspect ratio as the window,
|
||||
# making the AspectRatioContainer not have any visible effect.
|
||||
arc.ratio = panel.rect_size.aspect()
|
||||
# Apply GUI margin on the AspectRatioContainer's parent (Panel).
|
||||
# This also makes the GUI margin apply on controls located outside the AspectRatioContainer
|
||||
arc.ratio = panel.size.aspect()
|
||||
# Apply GUI offset on the AspectRatioContainer's parent (Panel).
|
||||
# This also makes the GUI offset apply on controls located outside the AspectRatioContainer
|
||||
# (such as the inner side label in this demo).
|
||||
panel.margin_top = gui_margin
|
||||
panel.margin_bottom = -gui_margin
|
||||
panel.offset_top = gui_margin
|
||||
panel.offset_bottom = -gui_margin
|
||||
else:
|
||||
# Constrained aspect ratio.
|
||||
arc.ratio = min(panel.rect_size.aspect(), gui_aspect_ratio)
|
||||
# Adjust top and bottom margins relative to the aspect ratio when it's constrained.
|
||||
# This ensures that GUI margin settings behave exactly as if the window had the
|
||||
arc.ratio = min(panel.size.aspect(), gui_aspect_ratio)
|
||||
# Adjust top and bottom offsets relative to the aspect ratio when it's constrained.
|
||||
# This ensures that GUI offset settings behave exactly as if the window had the
|
||||
# original aspect ratio size.
|
||||
panel.margin_top = gui_margin / gui_aspect_ratio
|
||||
panel.margin_bottom = -gui_margin / gui_aspect_ratio
|
||||
panel.offset_top = gui_margin / gui_aspect_ratio
|
||||
panel.offset_bottom = -gui_margin / gui_aspect_ratio
|
||||
|
||||
panel.margin_left = gui_margin
|
||||
panel.margin_right = -gui_margin
|
||||
panel.offset_left = gui_margin
|
||||
panel.offset_right = -gui_margin
|
||||
|
||||
|
||||
func _on_gui_aspect_ratio_item_selected(index):
|
||||
@@ -81,8 +81,8 @@ func _on_resized():
|
||||
|
||||
|
||||
func _on_gui_margin_drag_ended(_value_changed):
|
||||
gui_margin = $"Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/GUIMargin/HSlider".value
|
||||
$"Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/GUIMargin/Value".text = str(gui_margin)
|
||||
gui_margin = $"Panel/AspectRatioContainer/Panel/CenterContainer/Options/GUIMargin/HSlider".value
|
||||
$"Panel/AspectRatioContainer/Panel/CenterContainer/Options/GUIMargin/Value".text = str(gui_margin)
|
||||
update_container()
|
||||
|
||||
|
||||
@@ -105,25 +105,25 @@ func _on_window_base_size_item_selected(index):
|
||||
7: # 1680×720 (21:9)
|
||||
base_window_size = Vector2(1680, 720)
|
||||
|
||||
get_tree().set_screen_stretch(stretch_mode, stretch_aspect, base_window_size, scale_factor)
|
||||
get_viewport().content_scale_size = base_window_size
|
||||
update_container()
|
||||
|
||||
|
||||
func _on_window_stretch_mode_item_selected(index):
|
||||
stretch_mode = index
|
||||
get_tree().set_screen_stretch(stretch_mode, stretch_aspect, base_window_size, scale_factor)
|
||||
get_viewport().content_scale_mode = stretch_mode
|
||||
|
||||
# Disable irrelevant options when the stretch mode is Disabled.
|
||||
$"Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowBaseSize/OptionButton".disabled = stretch_mode == SceneTree.STRETCH_MODE_DISABLED
|
||||
$"Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowStretchAspect/OptionButton".disabled = stretch_mode == SceneTree.STRETCH_MODE_DISABLED
|
||||
$"Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowBaseSize/OptionButton".disabled = stretch_mode == Window.CONTENT_SCALE_MODE_DISABLED
|
||||
$"Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowStretchAspect/OptionButton".disabled = stretch_mode == Window.CONTENT_SCALE_MODE_DISABLED
|
||||
|
||||
|
||||
func _on_window_stretch_aspect_item_selected(index):
|
||||
stretch_aspect = index
|
||||
get_tree().set_screen_stretch(stretch_mode, stretch_aspect, base_window_size, scale_factor)
|
||||
get_viewport().content_scale_aspect = stretch_aspect
|
||||
|
||||
|
||||
func _on_window_scale_factor_drag_ended(_value_changed):
|
||||
scale_factor = $"Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowScaleFactor/HSlider".value
|
||||
$"Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowScaleFactor/Value".text = "%d%%" % (scale_factor * 100)
|
||||
get_tree().set_screen_stretch(stretch_mode, stretch_aspect, base_window_size, scale_factor)
|
||||
scale_factor = $"Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowScaleFactor/HSlider".value
|
||||
$"Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowScaleFactor/Value".text = "%d%%" % (scale_factor * 100)
|
||||
get_viewport().content_scale_factor = scale_factor
|
||||
|
||||
@@ -1,205 +1,215 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://1cywl1qtanq3"]
|
||||
|
||||
[ext_resource path="res://main.gd" type="Script" id=1]
|
||||
[ext_resource path="res://noto_sans_ui_regular.tres" type="DynamicFontData" id=2]
|
||||
[ext_resource type="Script" path="res://main.gd" id="1"]
|
||||
|
||||
[sub_resource type="DynamicFont" id=3]
|
||||
size = 14
|
||||
font_data = ExtResource( 2 )
|
||||
|
||||
[sub_resource type="Theme" id=4]
|
||||
default_font = SubResource( 3 )
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id=1]
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vvbdh"]
|
||||
draw_center = false
|
||||
border_width_left = 4
|
||||
border_width_top = 4
|
||||
border_width_right = 4
|
||||
border_width_bottom = 4
|
||||
border_color = Color( 0.501961, 1, 0.25098, 0.501961 )
|
||||
border_color = Color(0.501961, 1, 0.25098, 0.501961)
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id=2]
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_dyby4"]
|
||||
draw_center = false
|
||||
border_width_left = 8
|
||||
border_width_top = 8
|
||||
border_width_right = 8
|
||||
border_width_bottom = 8
|
||||
border_color = Color( 0.25098, 0.376471, 1, 0.501961 )
|
||||
border_color = Color(0.25, 0.38, 0.8, 0.5)
|
||||
|
||||
[node name="Main" type="Control"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
theme = SubResource( 4 )
|
||||
script = ExtResource( 1 )
|
||||
script = ExtResource( "1" )
|
||||
|
||||
[node name="OuterSideLabel" type="Label" parent="."]
|
||||
modulate = Color( 1, 1, 1, 0.627451 )
|
||||
anchor_top = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = 11.0
|
||||
margin_top = -47.0
|
||||
margin_right = 140.0
|
||||
margin_bottom = -16.0
|
||||
modulate = Color(1, 1, 1, 0.627451)
|
||||
offset_left = 8.0
|
||||
offset_top = 8.0
|
||||
offset_right = 165.0
|
||||
offset_bottom = 60.0
|
||||
text = "Outer Side Label
|
||||
(ignores all margins)"
|
||||
metadata/_edit_layout_mode = 1
|
||||
metadata/_edit_use_custom_anchors = false
|
||||
|
||||
[node name="Panel" type="Panel" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
custom_styles/panel = SubResource( 1 )
|
||||
theme_override_styles/panel = SubResource( "StyleBoxFlat_vvbdh" )
|
||||
|
||||
[node name="InnerSideLabel" type="Label" parent="Panel"]
|
||||
modulate = Color( 0.666667, 1, 0.501961, 1 )
|
||||
anchor_top = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = 11.0
|
||||
margin_top = 16.5
|
||||
margin_right = 209.0
|
||||
margin_bottom = 47.5
|
||||
modulate = Color(0.666667, 1, 0.501961, 1)
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 8.0
|
||||
offset_top = -60.0
|
||||
offset_right = 246.0
|
||||
offset_bottom = -8.0
|
||||
grow_vertical = 0
|
||||
text = "Inner Side Label
|
||||
(ignores GUI Max Aspect Ratio)"
|
||||
metadata/_edit_layout_mode = 1
|
||||
metadata/_edit_use_custom_anchors = false
|
||||
|
||||
[node name="AspectRatioContainer" type="AspectRatioContainer" parent="Panel"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
||||
[node name="ColorRect" type="Panel" parent="Panel/AspectRatioContainer"]
|
||||
margin_right = 648.0
|
||||
margin_bottom = 648.0
|
||||
custom_styles/panel = SubResource( 2 )
|
||||
[node name="Panel" type="Panel" parent="Panel/AspectRatioContainer"]
|
||||
offset_left = 212.0
|
||||
offset_right = 812.0
|
||||
offset_bottom = 600.0
|
||||
theme_override_styles/panel = SubResource( "StyleBoxFlat_dyby4" )
|
||||
|
||||
[node name="TopLeft" type="ColorRect" parent="Panel/AspectRatioContainer/ColorRect"]
|
||||
margin_right = 64.0
|
||||
margin_bottom = 64.0
|
||||
color = Color( 1, 1, 1, 0.25098 )
|
||||
[node name="TopLeft" type="ColorRect" parent="Panel/AspectRatioContainer/Panel"]
|
||||
color = Color(1, 1, 1, 0.25098)
|
||||
|
||||
[node name="TopRight" type="ColorRect" parent="Panel/AspectRatioContainer/ColorRect"]
|
||||
[node name="TopRight" type="ColorRect" parent="Panel/AspectRatioContainer/Panel"]
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
margin_left = -64.0
|
||||
margin_bottom = 64.0
|
||||
color = Color( 1, 1, 1, 0.25098 )
|
||||
color = Color(1, 1, 1, 0.25098)
|
||||
|
||||
[node name="BottomLeft" type="ColorRect" parent="Panel/AspectRatioContainer/ColorRect"]
|
||||
[node name="BottomLeft" type="ColorRect" parent="Panel/AspectRatioContainer/Panel"]
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_top = -64.0
|
||||
margin_right = 64.0
|
||||
color = Color( 1, 1, 1, 0.25098 )
|
||||
color = Color(1, 1, 1, 0.25098)
|
||||
|
||||
[node name="BottomRight" type="ColorRect" parent="Panel/AspectRatioContainer/ColorRect"]
|
||||
[node name="BottomRight" type="ColorRect" parent="Panel/AspectRatioContainer/Panel"]
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = -64.0
|
||||
margin_top = -64.0
|
||||
color = Color( 1, 1, 1, 0.25098 )
|
||||
color = Color(1, 1, 1, 0.25098)
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="Panel/AspectRatioContainer/ColorRect"]
|
||||
[node name="CenterContainer" type="CenterContainer" parent="Panel/AspectRatioContainer/Panel"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Options" type="VBoxContainer" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer"]
|
||||
margin_left = 167.0
|
||||
margin_top = 187.0
|
||||
margin_right = 481.0
|
||||
margin_bottom = 460.0
|
||||
rect_min_size = Vector2( 300, 0 )
|
||||
custom_constants/separation = 15
|
||||
[node name="Options" type="VBoxContainer" parent="Panel/AspectRatioContainer/Panel/CenterContainer"]
|
||||
offset_left = 112.0
|
||||
offset_top = 152.0
|
||||
offset_right = 488.0
|
||||
offset_bottom = 447.0
|
||||
theme_override_constants/separation = 10
|
||||
|
||||
[node name="Title" type="Label" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options"]
|
||||
margin_right = 314.0
|
||||
margin_bottom = 20.0
|
||||
custom_colors/font_color = Color( 1, 0.866667, 0.615686, 1 )
|
||||
[node name="Title" type="Label" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options"]
|
||||
minimum_size = Vector2(0, 45)
|
||||
offset_right = 376.0
|
||||
offset_bottom = 45.0
|
||||
theme_override_colors/font_color = Color(1, 0.87, 0.62, 1)
|
||||
theme_override_font_sizes/font_size = 24
|
||||
text = "Options"
|
||||
align = 1
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="WindowBaseSize" type="HBoxContainer" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options"]
|
||||
margin_top = 35.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 61.0
|
||||
custom_constants/separation = 15
|
||||
[node name="WindowBaseSize" type="HBoxContainer" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options"]
|
||||
offset_top = 55.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 86.0
|
||||
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowBaseSize"]
|
||||
margin_top = 3.0
|
||||
margin_right = 150.0
|
||||
margin_bottom = 23.0
|
||||
rect_min_size = Vector2( 150, 0 )
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowBaseSize"]
|
||||
minimum_size = Vector2(190, 0)
|
||||
offset_top = 2.0
|
||||
offset_right = 190.0
|
||||
offset_bottom = 28.0
|
||||
text = "Window Base Size"
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowBaseSize"]
|
||||
margin_left = 165.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 26.0
|
||||
[node name="OptionButton" type="OptionButton" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowBaseSize"]
|
||||
offset_left = 194.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
text = "648×648 (1:1)"
|
||||
items = [ "648×648 (1:1)", null, false, 0, null, "640×480 (4:3)", null, false, 1, null, "720×480 (3:2)", null, false, 2, null, "800×600 (4:3)", null, false, 3, null, "1152×648 (16:9)", null, false, 5, null, "1280×720 (16:9)", null, false, 6, null, "1280×800 (16:10)", null, false, 7, null, "1680×720 (21:9)", null, false, 8, null ]
|
||||
item_count = 8
|
||||
selected = 0
|
||||
popup/item_0/text = "648×648 (1:1)"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "640×480 (4:3)"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "720×480 (3:2)"
|
||||
popup/item_2/id = 2
|
||||
popup/item_3/text = "800×600 (4:3)"
|
||||
popup/item_3/id = 3
|
||||
popup/item_4/text = "1152×648 (16:9)"
|
||||
popup/item_4/id = 4
|
||||
popup/item_5/text = "1280×720 (16:9)"
|
||||
popup/item_5/id = 5
|
||||
popup/item_6/text = "1280×800 (16:10)"
|
||||
popup/item_6/id = 6
|
||||
popup/item_7/text = "1680×720 (21:9)"
|
||||
popup/item_7/id = 7
|
||||
|
||||
[node name="WindowStretchMode" type="HBoxContainer" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options"]
|
||||
margin_top = 76.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 102.0
|
||||
custom_constants/separation = 15
|
||||
[node name="WindowStretchMode" type="HBoxContainer" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options"]
|
||||
offset_top = 96.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 127.0
|
||||
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowStretchMode"]
|
||||
margin_top = 3.0
|
||||
margin_right = 150.0
|
||||
margin_bottom = 23.0
|
||||
rect_min_size = Vector2( 150, 0 )
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowStretchMode"]
|
||||
minimum_size = Vector2(190, 0)
|
||||
offset_top = 2.0
|
||||
offset_right = 190.0
|
||||
offset_bottom = 28.0
|
||||
text = "Window Stretch Mode"
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowStretchMode"]
|
||||
margin_left = 165.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 26.0
|
||||
[node name="OptionButton" type="OptionButton" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowStretchMode"]
|
||||
offset_left = 194.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
text = "2D (Canvas Items)"
|
||||
items = [ "Disabled", null, false, 0, null, "2D (Canvas Items)", null, false, 1, null, "Viewport", null, false, 2, null ]
|
||||
item_count = 3
|
||||
selected = 1
|
||||
popup/item_0/text = "Disabled"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "Canvas Items (2D)"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "Viewport"
|
||||
popup/item_2/id = 2
|
||||
|
||||
[node name="WindowStretchAspect" type="HBoxContainer" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options"]
|
||||
margin_top = 117.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 143.0
|
||||
custom_constants/separation = 15
|
||||
[node name="WindowStretchAspect" type="HBoxContainer" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options"]
|
||||
offset_top = 137.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 168.0
|
||||
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowStretchAspect"]
|
||||
margin_top = 3.0
|
||||
margin_right = 155.0
|
||||
margin_bottom = 23.0
|
||||
rect_min_size = Vector2( 150, 0 )
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowStretchAspect"]
|
||||
minimum_size = Vector2(190, 0)
|
||||
offset_top = 2.0
|
||||
offset_right = 190.0
|
||||
offset_bottom = 28.0
|
||||
text = "Window Stretch Aspect"
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowStretchAspect"]
|
||||
margin_left = 170.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 26.0
|
||||
[node name="OptionButton" type="OptionButton" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowStretchAspect"]
|
||||
offset_left = 194.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Expand"
|
||||
items = [ "Ignore (Distort)", null, false, 0, null, "Keep (Black Bars)", null, false, 1, null, "Keep Width", null, false, 2, null, "Keep Height", null, false, 3, null, "Expand", null, false, 4, null ]
|
||||
item_count = 5
|
||||
selected = 4
|
||||
popup/item_0/text = "Ignore"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "Keep"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "Keep Width"
|
||||
popup/item_2/id = 2
|
||||
popup/item_3/text = "Keep Height"
|
||||
popup/item_3/id = 3
|
||||
popup/item_4/text = "Expand"
|
||||
popup/item_4/id = 4
|
||||
|
||||
[node name="WindowScaleFactor" type="HBoxContainer" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options"]
|
||||
margin_top = 158.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 178.0
|
||||
custom_constants/separation = 15
|
||||
[node name="WindowScaleFactor" type="HBoxContainer" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options"]
|
||||
offset_top = 178.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 204.0
|
||||
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowScaleFactor"]
|
||||
margin_right = 150.0
|
||||
margin_bottom = 20.0
|
||||
rect_min_size = Vector2( 150, 0 )
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowScaleFactor"]
|
||||
minimum_size = Vector2(190, 0)
|
||||
offset_right = 190.0
|
||||
offset_bottom = 26.0
|
||||
text = "Window Scale Factor"
|
||||
|
||||
[node name="HSlider" type="HSlider" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowScaleFactor"]
|
||||
margin_left = 165.0
|
||||
margin_right = 263.0
|
||||
margin_bottom = 16.0
|
||||
[node name="HSlider" type="HSlider" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowScaleFactor"]
|
||||
offset_left = 194.0
|
||||
offset_right = 330.0
|
||||
offset_bottom = 16.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_stretch_ratio = 100.0
|
||||
min_value = 0.75
|
||||
@@ -207,70 +217,81 @@ max_value = 2.0
|
||||
step = 0.01
|
||||
value = 1.0
|
||||
|
||||
[node name="Value" type="Label" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowScaleFactor"]
|
||||
margin_left = 278.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 20.0
|
||||
[node name="Value" type="Label" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowScaleFactor"]
|
||||
offset_left = 334.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
text = "100%"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options"]
|
||||
margin_top = 193.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 197.0
|
||||
[node name="HSeparator" type="HSeparator" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options"]
|
||||
offset_top = 214.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 218.0
|
||||
|
||||
[node name="GUIMaxAspectRatio" type="HBoxContainer" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options"]
|
||||
margin_top = 212.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 238.0
|
||||
custom_constants/separation = 15
|
||||
[node name="GUIMaxAspectRatio" type="HBoxContainer" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options"]
|
||||
offset_top = 228.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 259.0
|
||||
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/GUIMaxAspectRatio"]
|
||||
margin_top = 3.0
|
||||
margin_right = 150.0
|
||||
margin_bottom = 23.0
|
||||
rect_min_size = Vector2( 150, 0 )
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/GUIMaxAspectRatio"]
|
||||
minimum_size = Vector2(190, 0)
|
||||
offset_top = 2.0
|
||||
offset_right = 190.0
|
||||
offset_bottom = 28.0
|
||||
text = "GUI Max Aspect Ratio"
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/GUIMaxAspectRatio"]
|
||||
margin_left = 165.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 26.0
|
||||
[node name="OptionButton" type="OptionButton" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/GUIMaxAspectRatio"]
|
||||
offset_left = 194.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Fit to Window"
|
||||
items = [ "Fit to Window", null, false, 0, null, "5:4", null, false, 1, null, "4:3", null, false, 2, null, "3:2", null, false, 3, null, "16:10", null, false, 4, null, "16:9", null, false, 5, null, "21:9", null, false, 6, null ]
|
||||
item_count = 7
|
||||
selected = 0
|
||||
popup/item_0/text = "Fit to Window"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "5:4"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "4:3"
|
||||
popup/item_2/id = 2
|
||||
popup/item_3/text = "3:2"
|
||||
popup/item_3/id = 3
|
||||
popup/item_4/text = "16:10"
|
||||
popup/item_4/id = 4
|
||||
popup/item_5/text = "16:9"
|
||||
popup/item_5/id = 5
|
||||
popup/item_6/text = "21:9"
|
||||
popup/item_6/id = 6
|
||||
|
||||
[node name="GUIMargin" type="HBoxContainer" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options"]
|
||||
margin_top = 253.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 273.0
|
||||
custom_constants/separation = 15
|
||||
[node name="GUIMargin" type="HBoxContainer" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options"]
|
||||
offset_top = 269.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 295.0
|
||||
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/GUIMargin"]
|
||||
margin_right = 150.0
|
||||
margin_bottom = 20.0
|
||||
rect_min_size = Vector2( 150, 0 )
|
||||
[node name="Label" type="Label" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/GUIMargin"]
|
||||
minimum_size = Vector2(190, 0)
|
||||
offset_right = 190.0
|
||||
offset_bottom = 26.0
|
||||
text = "GUI Margin"
|
||||
|
||||
[node name="HSlider" type="HSlider" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/GUIMargin"]
|
||||
margin_left = 165.0
|
||||
margin_right = 291.0
|
||||
margin_bottom = 16.0
|
||||
[node name="HSlider" type="HSlider" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/GUIMargin"]
|
||||
offset_left = 194.0
|
||||
offset_right = 362.0
|
||||
offset_bottom = 16.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_stretch_ratio = 100.0
|
||||
max_value = 50.0
|
||||
|
||||
[node name="Value" type="Label" parent="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/GUIMargin"]
|
||||
margin_left = 306.0
|
||||
margin_right = 314.0
|
||||
margin_bottom = 20.0
|
||||
[node name="Value" type="Label" parent="Panel/AspectRatioContainer/Panel/CenterContainer/Options/GUIMargin"]
|
||||
offset_left = 366.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
text = "0"
|
||||
|
||||
[connection signal="item_selected" from="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowBaseSize/OptionButton" to="." method="_on_window_base_size_item_selected"]
|
||||
[connection signal="item_selected" from="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowStretchMode/OptionButton" to="." method="_on_window_stretch_mode_item_selected"]
|
||||
[connection signal="item_selected" from="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowStretchAspect/OptionButton" to="." method="_on_window_stretch_aspect_item_selected"]
|
||||
[connection signal="drag_ended" from="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/WindowScaleFactor/HSlider" to="." method="_on_window_scale_factor_drag_ended"]
|
||||
[connection signal="item_selected" from="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/GUIMaxAspectRatio/OptionButton" to="." method="_on_gui_aspect_ratio_item_selected"]
|
||||
[connection signal="drag_ended" from="Panel/AspectRatioContainer/ColorRect/CenterContainer/Options/GUIMargin/HSlider" to="." method="_on_gui_margin_drag_ended"]
|
||||
[connection signal="item_selected" from="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowBaseSize/OptionButton" to="." method="_on_window_base_size_item_selected"]
|
||||
[connection signal="item_selected" from="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowStretchMode/OptionButton" to="." method="_on_window_stretch_mode_item_selected"]
|
||||
[connection signal="item_selected" from="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowStretchAspect/OptionButton" to="." method="_on_window_stretch_aspect_item_selected"]
|
||||
[connection signal="drag_ended" from="Panel/AspectRatioContainer/Panel/CenterContainer/Options/WindowScaleFactor/HSlider" to="." method="_on_window_scale_factor_drag_ended"]
|
||||
[connection signal="item_selected" from="Panel/AspectRatioContainer/Panel/CenterContainer/Options/GUIMaxAspectRatio/OptionButton" to="." method="_on_gui_aspect_ratio_item_selected"]
|
||||
[connection signal="drag_ended" from="Panel/AspectRatioContainer/Panel/CenterContainer/Options/GUIMargin/HSlider" to="." method="_on_gui_margin_drag_ended"]
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
[gd_resource type="DynamicFontData" format=2]
|
||||
|
||||
[resource]
|
||||
hinting = 1
|
||||
font_path = "res://noto_sans_ui_regular.ttf"
|
||||
Binary file not shown.
@@ -6,7 +6,7 @@
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=4
|
||||
config_version=5
|
||||
|
||||
[application]
|
||||
|
||||
@@ -30,19 +30,24 @@ by bringing HUD elements closer to the center of the screen."
|
||||
run/main_scene="res://main.tscn"
|
||||
run/low_processor_mode=true
|
||||
config/icon="res://icon.png"
|
||||
config/features=PackedStringArray("4.0")
|
||||
|
||||
[display]
|
||||
|
||||
window/handheld/orientation="sensor"
|
||||
window/stretch/mode="canvas_items"
|
||||
window/stretch/aspect="expand"
|
||||
window/size/width=648
|
||||
window/size/height=648
|
||||
window/size/test_width=1152
|
||||
window/size/test_height=648
|
||||
window/dpi/allow_hidpi=true
|
||||
window/handheld/orientation="sensor"
|
||||
window/stretch/mode="2d"
|
||||
window/stretch/aspect="expand"
|
||||
|
||||
[gui]
|
||||
|
||||
theme/default_font_multichannel_signed_distance_field=true
|
||||
|
||||
[rendering]
|
||||
|
||||
vulkan/rendering/back_end=1
|
||||
environment/defaults/default_clear_color=Color(0.133333, 0.133333, 0.2, 1)
|
||||
quality/driver/driver_name="GLES2"
|
||||
environment/default_clear_color=Color( 0.133333, 0.133333, 0.2, 1 )
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 72 KiB |
Reference in New Issue
Block a user