diff options
Diffstat (limited to 'doc/classes')
-rw-r--r-- | doc/classes/AnimationNodeOneShot.xml | 15 | ||||
-rw-r--r-- | doc/classes/BaseButton.xml | 10 | ||||
-rw-r--r-- | doc/classes/BitMap.xml | 13 | ||||
-rw-r--r-- | doc/classes/CharacterBody2D.xml | 8 | ||||
-rw-r--r-- | doc/classes/CharacterBody3D.xml | 4 | ||||
-rw-r--r-- | doc/classes/CodeEdit.xml | 4 | ||||
-rw-r--r-- | doc/classes/Environment.xml | 2 | ||||
-rw-r--r-- | doc/classes/GPUParticles2D.xml | 29 | ||||
-rw-r--r-- | doc/classes/GPUParticles3D.xml | 6 | ||||
-rw-r--r-- | doc/classes/GeometryInstance3D.xml | 9 | ||||
-rw-r--r-- | doc/classes/Input.xml | 6 | ||||
-rw-r--r-- | doc/classes/Light3D.xml | 15 | ||||
-rw-r--r-- | doc/classes/RenderingDevice.xml | 2 | ||||
-rw-r--r-- | doc/classes/RenderingServer.xml | 4 | ||||
-rw-r--r-- | doc/classes/SoftDynamicBody3D.xml | 1 | ||||
-rw-r--r-- | doc/classes/TextEdit.xml | 6 | ||||
-rw-r--r-- | doc/classes/TileMap.xml | 3 | ||||
-rw-r--r-- | doc/classes/Tree.xml | 8 | ||||
-rw-r--r-- | doc/classes/TreeItem.xml | 2 | ||||
-rw-r--r-- | doc/classes/VoxelGI.xml | 4 | ||||
-rw-r--r-- | doc/classes/XRInterfaceExtension.xml | 50 | ||||
-rw-r--r-- | doc/classes/XRServer.xml | 18 |
22 files changed, 150 insertions, 69 deletions
diff --git a/doc/classes/AnimationNodeOneShot.xml b/doc/classes/AnimationNodeOneShot.xml index 116b54e39e..71ed82cf46 100644 --- a/doc/classes/AnimationNodeOneShot.xml +++ b/doc/classes/AnimationNodeOneShot.xml @@ -10,19 +10,6 @@ <link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link> <link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link> </tutorials> - <methods> - <method name="get_mix_mode" qualifiers="const"> - <return type="int" enum="AnimationNodeOneShot.MixMode" /> - <description> - </description> - </method> - <method name="set_mix_mode"> - <return type="void" /> - <argument index="0" name="mode" type="int" enum="AnimationNodeOneShot.MixMode" /> - <description> - </description> - </method> - </methods> <members> <member name="autorestart" type="bool" setter="set_autorestart" getter="has_autorestart" default="false"> If [code]true[/code], the sub-animation will restart automatically after finishing. @@ -37,6 +24,8 @@ </member> <member name="fadeout_time" type="float" setter="set_fadeout_time" getter="get_fadeout_time" default="0.1"> </member> + <member name="mix_mode" type="int" setter="set_mix_mode" getter="get_mix_mode" enum="AnimationNodeOneShot.MixMode" default="0"> + </member> <member name="sync" type="bool" setter="set_use_sync" getter="is_using_sync" default="false"> </member> </members> diff --git a/doc/classes/BaseButton.xml b/doc/classes/BaseButton.xml index 1b77a5b4d8..714af426b3 100644 --- a/doc/classes/BaseButton.xml +++ b/doc/classes/BaseButton.xml @@ -38,7 +38,7 @@ <return type="void" /> <argument index="0" name="pressed" type="bool" /> <description> - Changes the [member pressed] state of the button, without emitting [signal toggled]. Use when you just want to change the state of the button without sending the pressed event (e.g. when initializing scene). Only works if [member toggle_mode] is [code]true[/code]. + Changes the [member button_pressed] state of the button, without emitting [signal toggled]. Use when you just want to change the state of the button without sending the pressed event (e.g. when initializing scene). Only works if [member toggle_mode] is [code]true[/code]. [b]Note:[/b] This method doesn't unpress other buttons in [member button_group]. </description> </method> @@ -54,6 +54,10 @@ Binary mask to choose which mouse buttons this button will respond to. To allow both left-click and right-click, use [code]MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT[/code]. </member> + <member name="button_pressed" type="bool" setter="set_pressed" getter="is_pressed" default="false"> + If [code]true[/code], the button's state is pressed. Means the button is pressed down or toggled (if [member toggle_mode] is active). Only works if [member toggle_mode] is [code]true[/code]. + [b]Note:[/b] Setting [member button_pressed] will result in [signal toggled] to be emitted. If you want to change the pressed state without emitting that signal, use [method set_pressed_no_signal]. + </member> <member name="disabled" type="bool" setter="set_disabled" getter="is_disabled" default="false"> If [code]true[/code], the button is in disabled state and can't be clicked or toggled. </member> @@ -62,10 +66,6 @@ If [code]true[/code], the button stays pressed when moving the cursor outside the button while pressing it. [b]Note:[/b] This property only affects the button's visual appearance. Signals will be emitted at the same moment regardless of this property's value. </member> - <member name="pressed" type="bool" setter="set_pressed" getter="is_pressed" default="false"> - If [code]true[/code], the button's state is pressed. Means the button is pressed down or toggled (if [member toggle_mode] is active). Only works if [member toggle_mode] is [code]true[/code]. - [b]Note:[/b] Setting [member pressed] will result in [signal toggled] to be emitted. If you want to change the pressed state without emitting that signal, use [method set_pressed_no_signal]. - </member> <member name="shortcut" type="Shortcut" setter="set_shortcut" getter="get_shortcut"> [Shortcut] associated to the button. </member> diff --git a/doc/classes/BitMap.xml b/doc/classes/BitMap.xml index dc655ee3b0..ebcdcab75e 100644 --- a/doc/classes/BitMap.xml +++ b/doc/classes/BitMap.xml @@ -9,6 +9,12 @@ <tutorials> </tutorials> <methods> + <method name="convert_to_image" qualifiers="const"> + <return type="Image" /> + <description> + Returns an image of the same size as the bitmap and with a [enum Image.Format] of type [code]FORMAT_L8[/code]. [code]true[/code] bits of the bitmap are being converted into white pixels, and [code]false[/code] bits into black. + </description> + </method> <method name="create"> <return type="void" /> <argument index="0" name="size" type="Vector2" /> @@ -64,6 +70,13 @@ [code]epsilon[/code] is passed to RDP to control how accurately the polygons cover the bitmap: a lower [code]epsilon[/code] corresponds to more points in the polygons. </description> </method> + <method name="resize"> + <return type="void" /> + <argument index="0" name="new_size" type="Vector2" /> + <description> + Resizes the image to [code]new_size[/code]. + </description> + </method> <method name="set_bit"> <return type="void" /> <argument index="0" name="position" type="Vector2" /> diff --git a/doc/classes/CharacterBody2D.xml b/doc/classes/CharacterBody2D.xml index 28a9107db6..1c4475dd70 100644 --- a/doc/classes/CharacterBody2D.xml +++ b/doc/classes/CharacterBody2D.xml @@ -165,9 +165,6 @@ If [code]true[/code], the body will not slide on slopes when calling [method move_and_slide] when the body is standing still. If [code]false[/code], the body will slide on floor's slopes when [member motion_velocity] applies a downward force. </member> - <member name="free_mode_min_slide_angle" type="float" setter="set_free_mode_min_slide_angle" getter="get_free_mode_min_slide_angle" default="0.261799"> - Minimum angle (in radians) where the body is allowed to slide when it encounters a slope. The default value equals 15 degrees. - </member> <member name="max_slides" type="int" setter="set_max_slides" getter="get_max_slides" default="4"> Maximum number of times the body can change direction before it stops when calling [method move_and_slide]. </member> @@ -192,12 +189,15 @@ <member name="up_direction" type="Vector2" setter="set_up_direction" getter="get_up_direction" default="Vector2(0, -1)"> Direction vector used to determine what is a wall and what is a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. Defaults to [code]Vector2.UP[/code]. If set to [code]Vector2(0, 0)[/code], everything is considered a wall. This is useful for topdown games. </member> + <member name="wall_min_slide_angle" type="float" setter="set_wall_min_slide_angle" getter="get_wall_min_slide_angle" default="0.261799"> + Minimum angle (in radians) where the body is allowed to slide when it encounters a slope. The default value equals 15 degrees. This property only affects movement when [member motion_mode] is [constant MOTION_MODE_FLOATING]. + </member> </members> <constants> <constant name="MOTION_MODE_GROUNDED" value="0" enum="MotionMode"> Apply when notions of walls, ceiling and floor are relevant. In this mode the body motion will react to slopes (acceleration/slowdown). This mode is suitable for sided games like platformers. </constant> - <constant name="MOTION_MODE_FREE" value="1" enum="MotionMode"> + <constant name="MOTION_MODE_FLOATING" value="1" enum="MotionMode"> Apply when there is no notion of floor or ceiling. All collisions will be reported as [code]on_wall[/code]. In this mode, when you slide, the speed will always be constant. This mode is suitable for top-down games. </constant> <constant name="PLATFORM_VEL_ON_LEAVE_ALWAYS" value="0" enum="MovingPlatformApplyVelocityOnLeave"> diff --git a/doc/classes/CharacterBody3D.xml b/doc/classes/CharacterBody3D.xml index 819190fd69..a5df0fd97e 100644 --- a/doc/classes/CharacterBody3D.xml +++ b/doc/classes/CharacterBody3D.xml @@ -175,14 +175,14 @@ Direction vector used to determine what is a wall and what is a floor (or a ceiling), rather than a wall, when calling [method move_and_slide]. Defaults to [code]Vector3.UP[/code]. If set to [code]Vector3(0, 0, 0)[/code], everything is considered a wall. This is useful for topdown games. </member> <member name="wall_min_slide_angle" type="float" setter="set_wall_min_slide_angle" getter="get_wall_min_slide_angle" default="0.261799"> - Minimum angle (in radians) where the body is allowed to slide when it encounters a slope. The default value equals 15 degrees. In [code]MOTION_MODE_GROUNDED[/code], it works only when [member floor_block_on_wall] is [code]true[/code]. + Minimum angle (in radians) where the body is allowed to slide when it encounters a slope. The default value equals 15 degrees. When [member motion_mode] is [constant MOTION_MODE_GROUNDED], it only affects movement if [member floor_block_on_wall] is [code]true[/code]. </member> </members> <constants> <constant name="MOTION_MODE_GROUNDED" value="0" enum="MotionMode"> Apply when notions of walls, ceiling and floor are relevant. In this mode the body motion will react to slopes (acceleration/slowdown). This mode is suitable for grounded games like platformers. </constant> - <constant name="MOTION_MODE_FREE" value="1" enum="MotionMode"> + <constant name="MOTION_MODE_FLOATING" value="1" enum="MotionMode"> Apply when there is no notion of floor or ceiling. All collisions will be reported as [code]on_wall[/code]. In this mode, when you slide, the speed will always be constant. This mode is suitable for games without ground like space games. </constant> <constant name="PLATFORM_VEL_ON_LEAVE_ALWAYS" value="0" enum="MovingPlatformApplyVelocityOnLeave"> diff --git a/doc/classes/CodeEdit.xml b/doc/classes/CodeEdit.xml index 289ac2cb28..b3add6cfa2 100644 --- a/doc/classes/CodeEdit.xml +++ b/doc/classes/CodeEdit.xml @@ -345,7 +345,7 @@ <return type="void" /> <argument index="0" name="force" type="bool" default="false" /> <description> - Emits [signal request_code_completion], if [code]force[/code] is true will bypass all checks. Otherwise will check that the caret is in a word or in front of a prefix. Will ignore the request if all current options are of type file path, node path or signal. + Emits [signal code_completion_requested], if [code]force[/code] is true will bypass all checks. Otherwise will check that the caret is in a word or in front of a prefix. Will ignore the request if all current options are of type file path, node path or signal. </description> </method> <method name="set_code_completion_selected_index"> @@ -506,7 +506,7 @@ Emitted when a breakpoint is added or removed from a line. If the line is moved via backspace a removed is emitted at the old line. </description> </signal> - <signal name="request_code_completion"> + <signal name="code_completion_requested"> <description> Emitted when the user requests code completion. </description> diff --git a/doc/classes/Environment.xml b/doc/classes/Environment.xml index 03941e233f..c8c0494378 100644 --- a/doc/classes/Environment.xml +++ b/doc/classes/Environment.xml @@ -179,7 +179,7 @@ The number of cascades to use for SDFGI (between 1 and 8). A higher number of cascades allows displaying SDFGI further away while preserving detail up close, at the cost of performance. When using SDFGI on small-scale levels, [member sdfgi_cascades] can often be decreased between [code]1[/code] and [code]4[/code] to improve performance. </member> <member name="sdfgi_enabled" type="bool" setter="set_sdfgi_enabled" getter="is_sdfgi_enabled" default="false"> - If [code]true[/code], enables signed distance field global illumination for meshes that have their [member GeometryInstance3D.gi_mode] set to [constant GeometryInstance3D.GI_MODE_BAKED]. SDFGI is a real-time global illumination technique that works well with procedurally generated and user-built levels, including in situations where geometry is created during gameplay. The signed distance field is automatically generated around the camera as it moves. Dynamic lights are supported, but dynamic occluders and emissive surfaces are not. + If [code]true[/code], enables signed distance field global illumination for meshes that have their [member GeometryInstance3D.gi_mode] set to [constant GeometryInstance3D.GI_MODE_STATIC]. SDFGI is a real-time global illumination technique that works well with procedurally generated and user-built levels, including in situations where geometry is created during gameplay. The signed distance field is automatically generated around the camera as it moves. Dynamic lights are supported, but dynamic occluders and emissive surfaces are not. [b]Performance:[/b] SDFGI is relatively demanding on the GPU and is not suited to low-end hardware such as integrated graphics (consider [LightmapGI] instead). To improve SDFGI performance, enable [member ProjectSettings.rendering/global_illumination/gi/use_half_resolution] in the Project Settings. [b]Note:[/b] Meshes should have sufficiently thick walls to avoid light leaks (avoid one-sided walls). For interior levels, enclose your level geometry in a sufficiently large box and bridge the loops to close the mesh. </member> diff --git a/doc/classes/GPUParticles2D.xml b/doc/classes/GPUParticles2D.xml index 72adc49742..f97198658e 100644 --- a/doc/classes/GPUParticles2D.xml +++ b/doc/classes/GPUParticles2D.xml @@ -18,6 +18,17 @@ Returns a rectangle containing the positions of all existing particles. </description> </method> + <method name="emit_particle"> + <return type="void" /> + <argument index="0" name="xform" type="Transform2D" /> + <argument index="1" name="velocity" type="Vector2" /> + <argument index="2" name="color" type="Color" /> + <argument index="3" name="custom" type="Color" /> + <argument index="4" name="flags" type="int" /> + <description> + Emits a single particle. Whether [code]xform[/code], [code]velocity[/code], [code]color[/code] and [code]custom[/code] are applied depends on the value of [code]flags[/code]. See [enum EmitFlags]. + </description> + </method> <method name="restart"> <return type="void" /> <description> @@ -67,6 +78,9 @@ <member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale" default="1.0"> Particle system's running speed scaling ratio. A value of [code]0[/code] can be used to pause the particles. </member> + <member name="sub_emitter" type="NodePath" setter="set_sub_emitter" getter="get_sub_emitter" default="NodePath("")"> + The [NodePath] to the [GPUParticles2D] used for sub-emissions. + </member> <member name="texture" type="Texture2D" setter="set_texture" getter="get_texture"> Particle texture. If [code]null[/code], particles will be squares. </member> @@ -92,5 +106,20 @@ </constant> <constant name="DRAW_ORDER_REVERSE_LIFETIME" value="2" enum="DrawOrder"> </constant> + <constant name="EMIT_FLAG_POSITION" value="1" enum="EmitFlags"> + Particle starts at the specified position. + </constant> + <constant name="EMIT_FLAG_ROTATION_SCALE" value="2" enum="EmitFlags"> + Particle starts with specified rotation and scale. + </constant> + <constant name="EMIT_FLAG_VELOCITY" value="4" enum="EmitFlags"> + Particle starts with the specified velocity vector, which defines the emission direction and speed. + </constant> + <constant name="EMIT_FLAG_COLOR" value="8" enum="EmitFlags"> + Particle starts with specified color. + </constant> + <constant name="EMIT_FLAG_CUSTOM" value="16" enum="EmitFlags"> + Particle starts with specificed [code]CUSTOM[/code] data. + </constant> </constants> </class> diff --git a/doc/classes/GPUParticles3D.xml b/doc/classes/GPUParticles3D.xml index 771056cb93..62ac846077 100644 --- a/doc/classes/GPUParticles3D.xml +++ b/doc/classes/GPUParticles3D.xml @@ -26,6 +26,7 @@ <argument index="3" name="custom" type="Color" /> <argument index="4" name="flags" type="int" /> <description> + Emits a single particle. Whether [code]xform[/code], [code]velocity[/code], [code]color[/code] and [code]custom[/code] are applied depends on the value of [code]flags[/code]. See [enum EmitFlags]. </description> </method> <method name="get_draw_pass_mesh" qualifiers="const"> @@ -137,14 +138,19 @@ Particles are drawn in order of depth. </constant> <constant name="EMIT_FLAG_POSITION" value="1" enum="EmitFlags"> + Particle starts at the specified position. </constant> <constant name="EMIT_FLAG_ROTATION_SCALE" value="2" enum="EmitFlags"> + Particle starts with specified rotation and scale. </constant> <constant name="EMIT_FLAG_VELOCITY" value="4" enum="EmitFlags"> + Particle starts with the specified velocity vector, which defines the emission direction and speed. </constant> <constant name="EMIT_FLAG_COLOR" value="8" enum="EmitFlags"> + Particle starts with specified color. </constant> <constant name="EMIT_FLAG_CUSTOM" value="16" enum="EmitFlags"> + Particle starts with specificed [code]CUSTOM[/code] data. </constant> <constant name="MAX_DRAW_PASSES" value="4"> Maximum number of draw passes supported. diff --git a/doc/classes/GeometryInstance3D.xml b/doc/classes/GeometryInstance3D.xml index cecd1e518f..c03a2b8b7c 100644 --- a/doc/classes/GeometryInstance3D.xml +++ b/doc/classes/GeometryInstance3D.xml @@ -41,7 +41,8 @@ The texel density to use for lightmapping in [LightmapGI]. Greater scale values provide higher resolution in the lightmap, which can result in sharper shadows for lights that have both direct and indirect light baked. However, greater scale values will also increase the space taken by the mesh in the lightmap texture, which increases the memory, storage, and bake time requirements. When using a single mesh at different scales, consider adjusting this value to keep the lightmap texel density consistent across meshes. </member> <member name="gi_mode" type="int" setter="set_gi_mode" getter="get_gi_mode" enum="GeometryInstance3D.GIMode" default="0"> - The global illumination mode to use for the whole geometry. Use a mode that matches the purpose + The global illumination mode to use for the whole geometry. To avoid inconsistent results, use a mode that matches the purpose of the mesh during gameplay (static/dynamic). + [b]Note:[/b] Lights' bake mode will also affect the global illumination rendering. See [member Light3D.light_bake_mode]. </member> <member name="ignore_occlusion_culling" type="bool" setter="set_ignore_occlusion_culling" getter="is_ignoring_occlusion_culling" default="false"> </member> @@ -93,13 +94,13 @@ In other words, the actual mesh will not be visible, only the shadows casted from the mesh will be. </constant> <constant name="GI_MODE_DISABLED" value="0" enum="GIMode"> - Disabled global illumination mode. Use for dynamic objects that do not contribute to global illumination (such as characters). When using [VoxelGI] and SDFGI, the geometry will [i]receive[/i] indirect lighting and reflections but will not be considered in GI baking. When using [LightmapGI], the object will receive indirect lighting using lightmap probes instead of using the lightmap texture. + Disabled global illumination mode. Use for dynamic objects that do not contribute to global illumination (such as characters). When using [VoxelGI] and SDFGI, the geometry will [i]receive[/i] indirect lighting and reflections but the geometry will not be considered in GI baking. When using [LightmapGI], the object will receive indirect lighting using lightmap probes instead of using the baked lightmap texture. </constant> - <constant name="GI_MODE_BAKED" value="1" enum="GIMode"> + <constant name="GI_MODE_STATIC" value="1" enum="GIMode"> Baked global illumination mode. Use for static objects that contribute to global illumination (such as level geometry). This GI mode is effective when using [VoxelGI], SDFGI and [LightmapGI]. </constant> <constant name="GI_MODE_DYNAMIC" value="2" enum="GIMode"> - Dynamic global illumination mode. Use for dynamic objects that contribute to global illumination. This GI mode is only effective when using [VoxelGI], but it has a higher performance impact than [constant GI_MODE_BAKED]. + Dynamic global illumination mode. Use for dynamic objects that contribute to global illumination. This GI mode is only effective when using [VoxelGI], but it has a higher performance impact than [constant GI_MODE_STATIC]. When using other GI methods, this will act the same as [constant GI_MODE_DISABLED]. </constant> <constant name="LIGHTMAP_SCALE_1X" value="0" enum="LightmapScale"> The standard texel density for lightmapping with [LightmapGI]. diff --git a/doc/classes/Input.xml b/doc/classes/Input.xml index 45b15331d2..423e58f5c6 100644 --- a/doc/classes/Input.xml +++ b/doc/classes/Input.xml @@ -209,6 +209,12 @@ [b]Note:[/b] Due to keyboard ghosting, [method is_action_pressed] may return [code]false[/code] even if one of the action's keys is pressed. See [url=$DOCS_URL/tutorials/inputs/input_examples.html#keyboard-events]Input examples[/url] in the documentation for more information. </description> </method> + <method name="is_anything_pressed" qualifiers="const"> + <return type="bool" /> + <description> + Returns [code]true[/code] if any action, key, joypad button, or mouse button is being pressed. This will also return [code]true[/code] if any action is simulated via code by calling [method action_press]. + </description> + </method> <method name="is_joy_button_pressed" qualifiers="const"> <return type="bool" /> <argument index="0" name="device" type="int" /> diff --git a/doc/classes/Light3D.xml b/doc/classes/Light3D.xml index 009ad1f609..b8d46755c7 100644 --- a/doc/classes/Light3D.xml +++ b/doc/classes/Light3D.xml @@ -34,8 +34,9 @@ <member name="light_angular_distance" type="float" setter="set_param" getter="get_param" default="0.0"> The light's angular size in degrees. Increasing this will make shadows softer at greater distances. Only available for [DirectionalLight3D]s. For reference, the Sun from the Earth is approximately [code]0.5[/code]. </member> - <member name="light_bake_mode" type="int" setter="set_bake_mode" getter="get_bake_mode" enum="Light3D.BakeMode" default="1"> - The light's bake mode. See [enum BakeMode]. + <member name="light_bake_mode" type="int" setter="set_bake_mode" getter="get_bake_mode" enum="Light3D.BakeMode" default="2"> + The light's bake mode. This will affect the global illumination techniques that have an effect on the light's rendering. See [enum BakeMode]. + [b]Note:[/b] Meshes' global illumination mode will also affect the global illumination rendering. See [member GeometryInstance3D.gi_mode]. </member> <member name="light_color" type="Color" setter="set_color" getter="get_color" default="Color(1, 1, 1, 1)"> The light's color. An [i]overbright[/i] color can be used to achieve a result equivalent to increasing the light's [member light_energy]. @@ -146,12 +147,14 @@ Represents the size of the [enum Param] enum. </constant> <constant name="BAKE_DISABLED" value="0" enum="BakeMode"> - Light is ignored when baking. - [b]Note:[/b] Hiding a light does [i]not[/i] affect baking. + Light is ignored when baking. This is the fastest mode, but the light will be taken into account when baking global illumination. This mode should generally be used for dynamic lights that change quickly, as the effect of global illumination is less noticeable on those lights. + [b]Note:[/b] Hiding a light does [i]not[/i] affect baking [LightmapGI]. Hiding a light will still affect baking [VoxelGI] and SDFGI (see [member Environment.sdfgi_enabled). </constant> - <constant name="BAKE_DYNAMIC" value="1" enum="BakeMode"> + <constant name="BAKE_STATIC" value="1" enum="BakeMode"> + Light is taken into account in static baking ([VoxelGI], [LightmapGI], SDFGI ([member Environment.sdfgi_enabled])). The light can be moved around or modified, but its global illumination will not update in real-time. This is suitable for subtle changes (such as flickering torches), but generally not large changes such as toggling a light on and off. </constant> - <constant name="BAKE_STATIC" value="2" enum="BakeMode"> + <constant name="BAKE_DYNAMIC" value="2" enum="BakeMode"> + Light is taken into account in dynamic baking ([VoxelGI] and SDFGI ([member Environment.sdfgi_enabled]) only). The light can be moved around or modified with global illumination updating in real-time. The light's global illumination appearance will be slightly different compared to [constant BAKE_STATIC]. This has a greater performance cost compared to [constant BAKE_STATIC]. </constant> </constants> </class> diff --git a/doc/classes/RenderingDevice.xml b/doc/classes/RenderingDevice.xml index 909a8337cc..d6510993d8 100644 --- a/doc/classes/RenderingDevice.xml +++ b/doc/classes/RenderingDevice.xml @@ -305,7 +305,7 @@ <description> </description> </method> - <method name="free"> + <method name="free_rid"> <return type="void" /> <argument index="0" name="rid" type="RID" /> <description> diff --git a/doc/classes/RenderingServer.xml b/doc/classes/RenderingServer.xml index 1d8c978f01..446db40dd8 100644 --- a/doc/classes/RenderingServer.xml +++ b/doc/classes/RenderingServer.xml @@ -3759,9 +3759,9 @@ </constant> <constant name="LIGHT_BAKE_DISABLED" value="0" enum="LightBakeMode"> </constant> - <constant name="LIGHT_BAKE_DYNAMIC" value="1" enum="LightBakeMode"> + <constant name="LIGHT_BAKE_STATIC" value="1" enum="LightBakeMode"> </constant> - <constant name="LIGHT_BAKE_STATIC" value="2" enum="LightBakeMode"> + <constant name="LIGHT_BAKE_DYNAMIC" value="2" enum="LightBakeMode"> </constant> <constant name="LIGHT_OMNI_SHADOW_DUAL_PARABOLOID" value="0" enum="LightOmniShadowMode"> Use a dual paraboloid shadow map for omni lights. diff --git a/doc/classes/SoftDynamicBody3D.xml b/doc/classes/SoftDynamicBody3D.xml index fceebddf35..801b25f1b0 100644 --- a/doc/classes/SoftDynamicBody3D.xml +++ b/doc/classes/SoftDynamicBody3D.xml @@ -5,6 +5,7 @@ </brief_description> <description> A deformable physics body. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials. + [b]Note:[/b] There are many known bugs in [SoftDynamicBody3D]. Therefore, it's not recommended to use them for things that can affect gameplay (such as a player character made entirely out of soft bodies). </description> <tutorials> <link title="SoftBody">$DOCS_URL/tutorials/physics/soft_body.html</link> diff --git a/doc/classes/TextEdit.xml b/doc/classes/TextEdit.xml index 5f887a397f..6d602d58ee 100644 --- a/doc/classes/TextEdit.xml +++ b/doc/classes/TextEdit.xml @@ -992,6 +992,12 @@ <member name="override_selected_font_color" type="bool" setter="set_override_selected_font_color" getter="is_overriding_selected_font_color" default="false"> If [code]true[/code], custom [code]font_selected_color[/code] will be used for selected text. </member> + <member name="placeholder_alpha" type="float" setter="set_placeholder_alpha" getter="get_placeholder_alpha" default="0.6"> + Opacity of the [member placeholder_text]. From [code]0[/code] to [code]1[/code]. + </member> + <member name="placeholder_text" type="String" setter="set_placeholder" getter="get_placeholder" default=""""> + Text shown when the [TextEdit] is empty. It is [b]not[/b] the [TextEdit]'s default value (see [member text]). + </member> <member name="scroll_horizontal" type="int" setter="set_h_scroll" getter="get_h_scroll" default="0"> If there is a horizontal scrollbar, this determines the current horizontal scroll value in pixels. </member> diff --git a/doc/classes/TileMap.xml b/doc/classes/TileMap.xml index e37031f3fd..07b9543823 100644 --- a/doc/classes/TileMap.xml +++ b/doc/classes/TileMap.xml @@ -202,7 +202,8 @@ <return type="Vector2" /> <argument index="0" name="map_position" type="Vector2i" /> <description> - Returns the local position corresponding to the given tilemap (grid-based) coordinates. + Returns a local position of the center of the cell at the given tilemap (grid-based) coordinates. + [b]Note:[/b] This doesn't correspond to the visual position of the tile, i.e. it ignores the [member TileData.texture_offset] property of individual tiles. </description> </method> <method name="move_layer"> diff --git a/doc/classes/Tree.xml b/doc/classes/Tree.xml index 106bcf9d37..6392d0853f 100644 --- a/doc/classes/Tree.xml +++ b/doc/classes/Tree.xml @@ -53,7 +53,7 @@ <argument index="0" name="parent" type="Object" default="null" /> <argument index="1" name="idx" type="int" default="-1" /> <description> - Creates an item in the tree and adds it as a child of [code]parent[/code]. + Creates an item in the tree and adds it as a child of [code]parent[/code], which can be either a valid [TreeItem] or [code]null[/code]. If [code]parent[/code] is [code]null[/code], the root item will be the parent, or the new item will be the root itself if the tree is empty. The new item will be the [code]idx[/code]th child of parent, or it will be the last child if there are not enough siblings. </description> @@ -173,7 +173,7 @@ <argument index="0" name="item" type="Object" /> <argument index="1" name="column" type="int" default="-1" /> <description> - Returns the rectangle area for the specified item. If [code]column[/code] is specified, only get the position and size of that column, otherwise get the rectangle containing all columns. + Returns the rectangle area for the specified [TreeItem]. If [code]column[/code] is specified, only get the position and size of that column, otherwise get the rectangle containing all columns. </description> </method> <method name="get_item_at_position" qualifiers="const"> @@ -187,7 +187,7 @@ <return type="TreeItem" /> <argument index="0" name="from" type="Object" /> <description> - Returns the next selected item after the given one, or [code]null[/code] if the end is reached. + Returns the next selected [TreeItem] after the given one, or [code]null[/code] if the end is reached. If [code]from[/code] is [code]null[/code], this returns the first selected item. </description> </method> @@ -241,7 +241,7 @@ <return type="void" /> <argument index="0" name="item" type="Object" /> <description> - Causes the [Tree] to jump to the specified item. + Causes the [Tree] to jump to the specified [TreeItem]. </description> </method> <method name="set_column_clip_content"> diff --git a/doc/classes/TreeItem.xml b/doc/classes/TreeItem.xml index 0090fb555f..13f2c7120c 100644 --- a/doc/classes/TreeItem.xml +++ b/doc/classes/TreeItem.xml @@ -390,7 +390,7 @@ <argument index="0" name="column" type="int" /> <argument index="1" name="emit_signal" type="bool" default="true" /> <description> - Propagates this item's checked status to its children and parents for the given [code]column[/code]. It is possible to process the items affected by this method call by connecting to [signal Tree.check_propagated_to_item]. The order that the items affected will be processed is as follows: the item invoking this method, children of that item, and finally parents of that item. If [code]emit_signal[/code] is set to false, then [signal Tree.check_propagated_to_item] will not be emitted. + Propagates this item's checked status to its children and parents for the given [code]column[/code]. It is possible to process the items affected by this method call by connecting to [signal Tree.check_propagated_to_item]. The order that the items affected will be processed is as follows: the item invoking this method, children of that item, and finally parents of that item. If [code]emit_signal[/code] is [code]false[/code], then [signal Tree.check_propagated_to_item] will not be emitted. </description> </method> <method name="remove_child"> diff --git a/doc/classes/VoxelGI.xml b/doc/classes/VoxelGI.xml index 2c3605aa1c..ac6f026a37 100644 --- a/doc/classes/VoxelGI.xml +++ b/doc/classes/VoxelGI.xml @@ -7,7 +7,7 @@ [VoxelGI]s are used to provide high-quality real-time indirect light and reflections to scenes. They precompute the effect of objects that emit light and the effect of static geometry to simulate the behavior of complex light in real-time. [VoxelGI]s need to be baked before having a visible effect. However, once baked, dynamic objects will receive light from them. Furthermore, lights can be fully dynamic or baked. [b]Procedural generation:[/b] [VoxelGI] can be baked in an exported project, which makes it suitable for procedurally generated or user-built levels as long as all the geometry is generated in advance. For games where geometry is generated at any time during gameplay, SDFGI is more suitable (see [member Environment.sdfgi_enabled]). [b]Performance:[/b] [VoxelGI] is relatively demanding on the GPU and is not suited to low-end hardware such as integrated graphics (consider [LightmapGI] instead). To improve performance, adjust [member ProjectSettings.rendering/global_illumination/voxel_gi/quality] and enable [member ProjectSettings.rendering/global_illumination/gi/use_half_resolution] in the Project Settings. To provide a fallback for low-end hardware, consider adding an option to disable [VoxelGI] in your project's options menus. A [VoxelGI] node can be disabled by hiding it. - [b]Note:[/b] Meshes should have sufficiently thick walls to avoid light leaks (avoid one-sided walls). For interior levels, enclose your level geometry in a sufficiently large box and bridge the loops to close the mesh. To further prevent light leaks, you can also strategically place temporary [MeshInstance3D] nodes with their [member GeometryInstance3D.gi_mode] set to [constant GeometryInstance3D.GI_MODE_BAKED]. These temporary nodes can then be hidden after baking the [VoxelGI] node. + [b]Note:[/b] Meshes should have sufficiently thick walls to avoid light leaks (avoid one-sided walls). For interior levels, enclose your level geometry in a sufficiently large box and bridge the loops to close the mesh. To further prevent light leaks, you can also strategically place temporary [MeshInstance3D] nodes with their [member GeometryInstance3D.gi_mode] set to [constant GeometryInstance3D.GI_MODE_STATIC]. These temporary nodes can then be hidden after baking the [VoxelGI] node. </description> <tutorials> <link title="GI probes">$DOCS_URL/tutorials/3d/gi_probes.html</link> @@ -19,7 +19,7 @@ <argument index="0" name="from_node" type="Node" default="null" /> <argument index="1" name="create_visual_debug" type="bool" default="false" /> <description> - Bakes the effect from all [GeometryInstance3D]s marked with [constant GeometryInstance3D.GI_MODE_BAKED] and [Light3D]s marked with either [constant Light3D.BAKE_DYNAMIC] or [constant Light3D.BAKE_STATIC]. If [code]create_visual_debug[/code] is [code]true[/code], after baking the light, this will generate a [MultiMesh] that has a cube representing each solid cell with each cube colored to the cell's albedo color. This can be used to visualize the [VoxelGI]'s data and debug any issues that may be occurring. + Bakes the effect from all [GeometryInstance3D]s marked with [constant GeometryInstance3D.GI_MODE_STATIC] and [Light3D]s marked with either [constant Light3D.BAKE_STATIC] or [constant Light3D.BAKE_DYNAMIC]. If [code]create_visual_debug[/code] is [code]true[/code], after baking the light, this will generate a [MultiMesh] that has a cube representing each solid cell with each cube colored to the cell's albedo color. This can be used to visualize the [VoxelGI]'s data and debug any issues that may be occurring. [b]Note:[/b] [method bake] works from the editor and in exported projects. This makes it suitable for procedurally generated or user-built levels. Baking a [VoxelGI] node generally takes from 5 to 20 seconds in most scenes. Reducing [member subdiv] can speed up baking. </description> </method> diff --git a/doc/classes/XRInterfaceExtension.xml b/doc/classes/XRInterfaceExtension.xml index d2bb6aa59a..cd09f83335 100644 --- a/doc/classes/XRInterfaceExtension.xml +++ b/doc/classes/XRInterfaceExtension.xml @@ -9,46 +9,52 @@ <tutorials> </tutorials> <methods> - <method name="_commit_views" qualifiers="virtual"> + <method name="_end_frame" qualifiers="virtual"> <return type="void" /> - <argument index="0" name="render_target" type="RID" /> - <argument index="1" name="screen_rect" type="Rect2" /> <description> + Called if interface is active and queues have been submitted. </description> </method> <method name="_get_anchor_detection_is_enabled" qualifiers="virtual const"> <return type="bool" /> <description> + Return [code]true[/code] if anchor detection is enabled for this interface. </description> </method> <method name="_get_camera_feed_id" qualifiers="virtual const"> <return type="int" /> <description> + Returns the camera feed id for the [CameraFeed] registered with the [CameraServer] that should be presented as the background on an AR capable device (if applicable). </description> </method> <method name="_get_camera_transform" qualifiers="virtual"> <return type="Transform3D" /> <description> + Returns the [Transform3D] that positions the [XRCamera3D] in the world. </description> </method> <method name="_get_capabilities" qualifiers="virtual const"> <return type="int" /> <description> + Returns the capabilities of this interface. </description> </method> <method name="_get_name" qualifiers="virtual const"> <return type="StringName" /> <description> + Returns the name of this interface. </description> </method> <method name="_get_play_area" qualifiers="virtual const"> <return type="PackedVector3Array" /> <description> + Returns an [PackedVector3Array] that denotes the play areas boundaries (if applicable). </description> </method> <method name="_get_play_area_mode" qualifiers="virtual const"> <return type="int" /> <description> + Returns the [enum XRInterface.PlayAreaMode] that sets up our play area. </description> </method> <method name="_get_projection_for_view" qualifiers="virtual"> @@ -58,27 +64,32 @@ <argument index="2" name="z_near" type="float" /> <argument index="3" name="z_far" type="float" /> <description> + Returns the projection matrix for the given view as a [PackedFloat64Array]. </description> </method> <method name="_get_render_target_size" qualifiers="virtual"> <return type="Vector2" /> <description> + Returns the size of our render target for this interface, this overrides the size of the [Viewport] marked as the xr viewport. </description> </method> <method name="_get_suggested_pose_names" qualifiers="virtual const"> <return type="PackedStringArray" /> <argument index="0" name="tracker_name" type="StringName" /> <description> + Returns a [PackedStringArray] with pose names configured by this interface. Note that user configuration can override this list. </description> </method> <method name="_get_suggested_tracker_names" qualifiers="virtual const"> <return type="PackedStringArray" /> <description> + Returns a [PackedStringArray] with tracker names configured by this interface. Note that user configuration can override this list. </description> </method> <method name="_get_tracking_status" qualifiers="virtual const"> <return type="int" /> <description> + Returns a [enum XRInterface.TrackingStatus] specifying the current status of our tracking. </description> </method> <method name="_get_transform_for_view" qualifiers="virtual"> @@ -86,50 +97,80 @@ <argument index="0" name="view" type="int" /> <argument index="1" name="cam_transform" type="Transform3D" /> <description> + Returns a [Transform3D] for a given view. </description> </method> <method name="_get_view_count" qualifiers="virtual"> <return type="int" /> <description> + Returns the number of views this interface requires, 1 for mono, 2 for stereoscopic. </description> </method> <method name="_initialize" qualifiers="virtual"> <return type="bool" /> <description> + Initializes the interface, returns [code]true[/code] on success. </description> </method> <method name="_is_initialized" qualifiers="virtual const"> <return type="bool" /> <description> + Returns [code]true[/code] if this interface has been initialised. </description> </method> <method name="_notification" qualifiers="virtual"> <return type="void" /> <argument index="0" name="what" type="int" /> <description> + Informs the interface of an applicable system notification. + </description> + </method> + <method name="_post_draw_viewport" qualifiers="virtual"> + <return type="void" /> + <argument index="0" name="render_target" type="RID" /> + <argument index="1" name="screen_rect" type="Rect2" /> + <description> + Called after the XR [Viewport] draw logic has completed. + </description> + </method> + <method name="_pre_draw_viewport" qualifiers="virtual"> + <return type="bool" /> + <argument index="0" name="render_target" type="RID" /> + <description> + Called if this is our primary [XRInterfaceExtension] before we start processing a [Viewport] for every active XR [Viewport], returns [code]true[/code] if that viewport should be rendered. An XR interface may return [code]false[/code] if the user has taken off their headset and we can pause rendering. + </description> + </method> + <method name="_pre_render" qualifiers="virtual"> + <return type="void" /> + <description> + Called if this [XRInterfaceExtension] is active before rendering starts, most XR interfaces will sync tracking at this point in time. </description> </method> <method name="_process" qualifiers="virtual"> <return type="void" /> <description> + Called if this [XRInterfaceExtension] is active before our physics and game process is called. most XR interfaces will update its [XRPositionalTracker]s at this point in time. </description> </method> <method name="_set_anchor_detection_is_enabled" qualifiers="virtual"> <return type="void" /> <argument index="0" name="enabled" type="bool" /> <description> + Enables anchor detection on this interface if supported. </description> </method> <method name="_set_play_area_mode" qualifiers="virtual const"> <return type="bool" /> <argument index="0" name="mode" type="int" /> <description> + Set the play area mode for this interface. </description> </method> <method name="_supports_play_area_mode" qualifiers="virtual const"> <return type="bool" /> <argument index="0" name="mode" type="int" enum="XRInterface.PlayAreaMode" /> <description> + Returns [code]true[/code] if this interface supports this play area mode. </description> </method> <method name="_trigger_haptic_pulse" qualifiers="virtual"> @@ -141,11 +182,13 @@ <argument index="4" name="duration_sec" type="float" /> <argument index="5" name="delay_sec" type="float" /> <description> + Triggers a haptic pulse to be emitted on the specified tracker. </description> </method> <method name="_uninitialize" qualifiers="virtual"> <return type="void" /> <description> + Uninitialize the interface. </description> </method> <method name="add_blit"> @@ -169,6 +212,7 @@ <return type="RID" /> <argument index="0" name="render_target" type="RID" /> <description> + Returns a valid [RID] for a texture to which we should render the current frame if supported by the interface. </description> </method> </methods> diff --git a/doc/classes/XRServer.xml b/doc/classes/XRServer.xml index 3a7fdea8d0..335ca4c35f 100644 --- a/doc/classes/XRServer.xml +++ b/doc/classes/XRServer.xml @@ -69,24 +69,6 @@ Returns a list of available interfaces the ID and name of each interface. </description> </method> - <method name="get_last_commit_usec"> - <return type="int" /> - <description> - Returns the absolute timestamp (in μs) of the last [XRServer] commit of the AR/VR eyes to [RenderingServer]. The value comes from an internal call to [method Time.get_ticks_usec]. - </description> - </method> - <method name="get_last_frame_usec"> - <return type="int" /> - <description> - Returns the duration (in μs) of the last frame. This is computed as the difference between [method get_last_commit_usec] and [method get_last_process_usec] when committing. - </description> - </method> - <method name="get_last_process_usec"> - <return type="int" /> - <description> - Returns the absolute timestamp (in μs) of the last [XRServer] process callback. The value comes from an internal call to [method Time.get_ticks_usec]. - </description> - </method> <method name="get_reference_frame" qualifiers="const"> <return type="Transform3D" /> <description> |