Update most demos for Godot 4.0.beta10 (#782)

This commit is contained in:
Hugo Locurcio
2023-01-05 16:50:17 +01:00
committed by GitHub
parent 85ca2fb2a1
commit 1d5184e235
758 changed files with 24258 additions and 9624 deletions

View File

@@ -20,16 +20,5 @@ config/icon="res://icon.png"
[display]
window/dpi/allow_hidpi=true
window/stretch/mode="2d"
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
[gdnative]
singletons=[]
[rendering]
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false

View File

@@ -11,27 +11,26 @@ extends Panel
@onready var paint_control = _parent.get_node(^"PaintControl")
func _ready():
# warning-ignore-all:return_value_discarded
# Assign all of the needed signals for the oppersation buttons.
$ButtonUndo.connect(&"pressed", self.button_pressed, ["undo_stroke"])
$ButtonSave.connect(&"pressed", self.button_pressed, ["save_picture"])
$ButtonClear.connect(&"pressed", self.button_pressed, ["clear_picture"])
$ButtonUndo.pressed.connect(self.button_pressed.bind("undo_stroke"))
$ButtonSave.pressed.connect(self.button_pressed.bind("save_picture"))
$ButtonClear.pressed.connect(self.button_pressed.bind("clear_picture"))
# Assign all of the needed signals for the brush buttons.
$ButtonToolPencil.connect(&"pressed", self.button_pressed, ["mode_pencil"])
$ButtonToolEraser.connect(&"pressed", self.button_pressed, ["mode_eraser"])
$ButtonToolRectangle.connect(&"pressed", self.button_pressed, ["mode_rectangle"])
$ButtonToolCircle.connect(&"pressed", self.button_pressed, ["mode_circle"])
$BrushSettings/ButtonShapeBox.connect(&"pressed", self.button_pressed, ["shape_rectangle"])
$BrushSettings/ButtonShapeCircle.connect(&"pressed", self.button_pressed, ["shape_circle"])
$ButtonToolPencil.pressed.connect(self.button_pressed.bind("mode_pencil"))
$ButtonToolEraser.pressed.connect(self.button_pressed.bind("mode_eraser"))
$ButtonToolRectangle.pressed.connect(self.button_pressed.bind("mode_rectangle"))
$ButtonToolCircle.pressed.connect(self.button_pressed.bind("mode_circle"))
$BrushSettings/ButtonShapeBox.pressed.connect(self.button_pressed.bind("shape_rectangle"))
$BrushSettings/ButtonShapeCircle.pressed.connect(self.button_pressed.bind("shape_circle"))
# Assign all of the needed signals for the other brush settings (and ColorPickerBackground).
$ColorPickerBrush.connect(&"color_changed", self.brush_color_changed)
$ColorPickerBackground.connect(&"color_changed", self.background_color_changed)
$BrushSettings/HScrollBarBrushSize.connect(&"value_changed", self.brush_size_changed)
$ColorPickerBrush.color_changed.connect(self.brush_color_changed)
$ColorPickerBackground.color_changed.connect(self.background_color_changed)
$BrushSettings/HScrollBarBrushSize.value_changed.connect(self.brush_size_changed)
# Assign the "file_selected" signal in SaveFileDialog.
save_dialog.connect(&"file_selected", self.save_file_selected)
save_dialog.file_selected.connect(self.save_file_selected)
# Set physics process so we can update the status label.
set_physics_process(true)

View File

@@ -31,10 +31,6 @@ window/size/viewport_height=480
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
[gdnative]
singletons=[]
[input]
move_right={

18
gui/msdf_font/README.md Normal file
View File

@@ -0,0 +1,18 @@
# Multi-channel Signed Distance Field Font Demo
This is a demo of Multi-channel Signed Distance Field fonts in Godot.
The technique used allows the text to remain clear under arbitrary zooms and rotations.
The *multi-channel* part refers to the font texture being generated in a way that allows
for higher precision when rendering the font. This allows MSDF fonts to be more readable
at small font sizes compared to single-channel signed distance field fonts.
Language: This demo contains no code.
Renderer: Forward Mobile
Check out this demo on the asset library: https://godotengine.org/asset-library/asset/521
## Screenshots
![Screenshot](screenshots/sdf.webp)

View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1,8 +1,9 @@
[remap]
importer="texture"
type="StreamTexture2D"
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
type="CompressedTexture2D"
uid="uid://ce2yhmi8xvw3u"
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://.godot/imported/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

Binary file not shown.

View File

@@ -0,0 +1,33 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://bq4xy4dnuucra"
path="res://.godot/imported/montserrat_semibold.ttf-82447902655912d350b40072a5c89861.fontdata"
[deps]
source_file="res://montserrat_semibold.ttf"
dest_files=["res://.godot/imported/montserrat_semibold.ttf-82447902655912d350b40072a5c89861.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

View File

@@ -0,0 +1,33 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://j0vum3eyhewy"
path="res://.godot/imported/montserrat_semibold_msdf.ttf-3d4d7c8ca9f6b67f9698cf3e8bf1519e.fontdata"
[deps]
source_file="res://montserrat_semibold_msdf.ttf"
dest_files=["res://.godot/imported/montserrat_semibold_msdf.ttf-3d4d7c8ca9f6b67f9698cf3e8bf1519e.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
multichannel_signed_distance_field=true
msdf_pixel_range=10
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

View File

@@ -0,0 +1,40 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=5
[application]
config/name="Multi-channel Signed Distance Field Font Demo"
config/description="This is a demo of Signed Distance Field fonts in Godot.
The technique used allows the text to remain clear under arbitrary zooms and rotations.
The multi-channel part refers to the font texture being generated in a way that allows
for higher precision when rendering the font. This allows MSDF fonts to be more readable
at small font sizes compared to single-channel signed distance field fonts."
run/main_scene="res://sdf_font_demo.tscn"
config/features=PackedStringArray("4.0")
config/icon="res://icon.png"
[display]
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
[input]
toggle_msdf_font={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
]
}
[rendering]
renderer/rendering_method="mobile"
environment/defaults/default_clear_color=Color(0.180392, 0.117647, 0.152941, 1)

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -0,0 +1,21 @@
extends Control
func _input(event):
if event.is_action_pressed("toggle_msdf_font"):
if %FontLabel.get_theme_font("font").multichannel_signed_distance_field:
%FontLabel.add_theme_font_override("font", preload("res://montserrat_semibold.ttf"))
else:
%FontLabel.add_theme_font_override("font", preload("res://montserrat_semibold_msdf.ttf"))
update_label()
func update_label():
%FontMode.text = "Font rendering: %s" % ("MSDF" if %FontLabel.get_theme_font("font").multichannel_signed_distance_field else "Traditional")
func _on_outline_size_value_changed(value):
%FontLabel.add_theme_constant_override("outline_size", int(value))
%Value.text = str(value)

View File

@@ -0,0 +1,149 @@
[gd_scene load_steps=7 format=3 uid="uid://c50snxy83byec"]
[ext_resource type="Script" path="res://sdf_font_demo.gd" id="1_05k3u"]
[ext_resource type="FontFile" uid="uid://j0vum3eyhewy" path="res://montserrat_semibold_msdf.ttf" id="1_eart1"]
[sub_resource type="Animation" id="1"]
length = 15.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 15),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, -6.28319]
}
[sub_resource type="Animation" id="2"]
length = 10.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 5),
"transitions": PackedFloat32Array(-2, -2),
"update": 0,
"values": [Vector2(1, 1), Vector2(7, 7)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_88vp7"]
_data = {
"rotate": SubResource("1"),
"zoomin_zoomout": SubResource("2")
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_j5dlp"]
_data = {
"zoomin_zoomout": SubResource("2")
}
[node name="SDFFontDemo" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_05k3u")
[node name="Panel" type="Panel" parent="."]
layout_mode = 0
offset_right = 285.0
offset_bottom = 107.0
[node name="FontMode" type="Label" parent="."]
unique_name_in_owner = true
layout_mode = 1
offset_left = 16.0
offset_top = 16.0
offset_right = 218.0
offset_bottom = 68.0
text = "Font rendering: MSDF"
[node name="OutlineSize" type="HBoxContainer" parent="."]
layout_mode = 0
offset_left = 16.0
offset_top = 56.0
offset_right = 286.0
offset_bottom = 96.0
theme_override_constants/separation = 8
[node name="Label" type="Label" parent="OutlineSize"]
layout_mode = 2
text = "Outline size:"
[node name="HSlider" type="HSlider" parent="OutlineSize"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 1
max_value = 20.0
value = 5.0
[node name="Value" type="Label" parent="OutlineSize"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_stretch_ratio = 0.23
text = "5"
[node name="Help" type="Label" parent="."]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 16.0
offset_top = -42.0
offset_right = 439.0
offset_bottom = -16.0
grow_vertical = 0
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/outline_size = 4
text = "S: Toggle between traditional and MSDF font rendering"
[node name="CenterContainer" type="CenterContainer" parent="."]
layout_mode = 0
offset_left = 576.0
offset_top = 324.0
offset_right = 576.0
offset_bottom = 324.0
[node name="Base" type="Control" parent="CenterContainer"]
layout_mode = 2
[node name="Rotate" type="AnimationPlayer" parent="CenterContainer/Base"]
autoplay = "rotate"
libraries = {
"": SubResource("AnimationLibrary_88vp7")
}
[node name="Zoom" type="AnimationPlayer" parent="CenterContainer/Base"]
autoplay = "zoomin_zoomout"
libraries = {
"": SubResource("AnimationLibrary_j5dlp")
}
[node name="FontLabel" type="Label" parent="CenterContainer/Base"]
unique_name_in_owner = true
z_index = -1
layout_mode = 0
offset_left = -128.0
offset_top = -50.0
offset_right = 128.0
offset_bottom = 51.0
theme_override_colors/font_outline_color = Color(0.831373, 0.384314, 0.109804, 1)
theme_override_constants/outline_size = 5
theme_override_fonts/font = ExtResource("1_eart1")
text = "Font rendering example
0123456789
!@#$%^&*()_+-="
[connection signal="value_changed" from="OutlineSize/HSlider" to="." method="_on_outline_size_value_changed"]

View File

@@ -23,8 +23,7 @@ func _ready():
# The `resized` signal will be emitted when the window size changes, as the root Control node
# 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)
resized.connect(self._on_resized)
update_container()

View File

@@ -37,8 +37,8 @@ config/features=PackedStringArray("4.0")
window/handheld/orientation="sensor"
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
window/size/width=648
window/size/height=648
window/size/viewport_width=648
window/size/viewport_height=648
window/size/test_width=1152
window/size/test_height=648

View File

@@ -18,16 +18,5 @@ config/icon="res://icon.png"
[display]
window/dpi/allow_hidpi=true
window/stretch/mode="2d"
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
[gdnative]
singletons=[]
[rendering]
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false

View File

@@ -17,21 +17,13 @@ config/icon="res://icon.png"
[display]
window/dpi/allow_hidpi=true
window/stretch/mode="2d"
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
[gdnative]
singletons=[]
[memory]
multithread/thread_rid_pool_prealloc=60
[rendering]
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false
environment/default_clear_color=Color(0.145098, 0.145098, 0.164706, 1)
environment/defaults/default_clear_color=Color(0.145098, 0.145098, 0.164706, 1)

View File

@@ -1,15 +0,0 @@
# SDF Font
This is a demo of Signed Distance Field fonts in Godot.
The technique used allows the text to remain clear
under arbitrary zooms and rotations.
Language: This demo contains no code.
Renderer: GLES 3 (this effect is not available in GLES 2)
Check out this demo on the asset library: https://godotengine.org/asset-library/asset/521
## Screenshots
![Screenshot](screenshots/sdf.png)

Binary file not shown.

View File

@@ -1,32 +0,0 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=4
[application]
config/name="Signed Distance Field Font Demo"
config/description="This is a demo of Signed Distance Field fonts in Godot.
The technique used allows the text to remain clear
under arbitrary zooms and rotations."
run/main_scene="res://sdf_font_demo.tscn"
config/icon="res://icon.png"
[display]
window/dpi/allow_hidpi=true
window/stretch/mode="2d"
window/stretch/aspect="expand"
[gdnative]
singletons=[]
[rendering]
environment/default_clear_color=Color(0.18, 0.1188, 0.15348, 1)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -1,72 +0,0 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://font.font" type="Font" id=1]
[sub_resource type="Animation" id=1]
length = 15.0
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 15),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.0, -360.0]
}
[sub_resource type="Animation" id=2]
length = 10.0
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath(".:rect_scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 5),
"transitions": PackedFloat32Array(-2, -2),
"update": 0,
"values": [Vector2(1, 1), Vector2(7, 7)]
}
[node name="SDFFontDemo" type="CenterContainer"]
anchor_right = 1.0
anchor_bottom = 1.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Base" type="Control" parent="."]
offset_left = 512.0
offset_top = 300.0
offset_right = 512.0
offset_bottom = 300.0
[node name="Rotate" type="AnimationPlayer" parent="Base"]
autoplay = "rotate"
anims/rotate = SubResource( 1 )
anims/zoomin_zoomout = SubResource( 2 )
[node name="Zoom" type="AnimationPlayer" parent="Base"]
autoplay = "zoomin_zoomout"
anims/zoomin_zoomout = SubResource( 2 )
[node name="TextLabel" type="Label" parent="Base"]
offset_left = -128.0
offset_top = -50.0
offset_right = 128.0
offset_bottom = 51.0
custom_colors/font_color = Color(0.853858, 0.771714, 0.753746, 1)
custom_colors/font_color_shadow = Color(0.56592, 0.454525, 0.518426, 1)
custom_fonts/font = ExtResource( 1 )
text = "Signed Distance
Field Font!!"
align = 1
__meta__ = {
"_edit_use_anchors_": false
}

View File

@@ -17,14 +17,10 @@ config/icon="res://icon.png"
[display]
window/size/height=576
window/dpi/allow_hidpi=true
window/stretch/mode="2d"
window/size/viewport_height=576
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
[rendering]
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false
environment/default_clear_color=Color(0.133333, 0.133333, 0.133333, 1)
environment/defaults/default_clear_color=Color(0.133333, 0.133333, 0.133333, 1)

View File

@@ -22,10 +22,6 @@ config/features=PackedStringArray("4.0")
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
[gdnative]
singletons=[]
[internationalization]
locale/translations=PackedStringArray("res://text.en.translation", "res://text.es.translation", "res://text.ja.translation")