Browse Source

classref: Sync with current master branch (61accf0)

Godot Organization 9 months ago
parent
commit
85ce5bdfd1

+ 4 - 4
classes/[email protected]

@@ -17,9 +17,9 @@ Built-in GDScript constants, functions, and annotations.
 Description
 Description
 -----------
 -----------
 
 
-A list of GDScript-specific utility functions and annotations accessible from any script.
+A list of utility functions and annotations accessible from any script written in GDScript.
 
 
-For the list of the global functions and constants see :ref:`@GlobalScope<class_@GlobalScope>`.
+For the list of global functions and constants that can be accessed in any scripting language, see :ref:`@GlobalScope<class_@GlobalScope>`.
 
 
 .. rst-class:: classref-introduction-group
 .. rst-class:: classref-introduction-group
 
 
@@ -43,7 +43,7 @@ Methods
    +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`String<class_String>`         | :ref:`char<class_@GDScript_method_char>`\ (\ char\: :ref:`int<class_int>`\ )                                                                                             |
    | :ref:`String<class_String>`         | :ref:`char<class_@GDScript_method_char>`\ (\ char\: :ref:`int<class_int>`\ )                                                                                             |
    +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Variant<class_Variant>`       | :ref:`convert<class_@GDScript_method_convert>`\ (\ what\: :ref:`Variant<class_Variant>`, type\: :ref:`int<class_int>`\ )                                                 |
+   | :ref:`Variant<class_Variant>`       | :ref:`convert<class_@GDScript_method_convert>`\ (\ what\: :ref:`Variant<class_Variant>`, type\: :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>`\ )                   |
    +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Object<class_Object>`         | :ref:`dict_to_inst<class_@GDScript_method_dict_to_inst>`\ (\ dictionary\: :ref:`Dictionary<class_Dictionary>`\ )                                                         |
    | :ref:`Object<class_Object>`         | :ref:`dict_to_inst<class_@GDScript_method_dict_to_inst>`\ (\ dictionary\: :ref:`Dictionary<class_Dictionary>`\ )                                                         |
    +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -958,7 +958,7 @@ Returns a single character (as a :ref:`String<class_String>`) of the given Unico
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-:ref:`Variant<class_Variant>` **convert**\ (\ what\: :ref:`Variant<class_Variant>`, type\: :ref:`int<class_int>`\ ) :ref:`🔗<class_@GDScript_method_convert>`
+:ref:`Variant<class_Variant>` **convert**\ (\ what\: :ref:`Variant<class_Variant>`, type\: :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>`\ ) :ref:`🔗<class_@GDScript_method_convert>`
 
 
 **Deprecated:** Use :ref:`@GlobalScope.type_convert<class_@GlobalScope_method_type_convert>` instead.
 **Deprecated:** Use :ref:`@GlobalScope.type_convert<class_@GlobalScope_method_type_convert>` instead.
 
 

+ 1 - 1
classes/[email protected]

@@ -21,7 +21,7 @@ A list of global scope enumerated constants and built-in functions. This is all
 
 
 Singletons are also documented here, since they can be accessed from anywhere.
 Singletons are also documented here, since they can be accessed from anywhere.
 
 
-For the entries related to GDScript which can be accessed in any script see :ref:`@GDScript<class_@GDScript>`.
+For the entries that can only be accessed from scripts written in GDScript, see :ref:`@GDScript<class_@GDScript>`.
 
 
 .. note::
 .. note::
 
 

+ 1 - 1
classes/class_atlastexture.rst

@@ -23,7 +23,7 @@ Description
 
 
 Multiple **AtlasTexture** resources can be cropped from the same :ref:`atlas<class_AtlasTexture_property_atlas>`. Packing many smaller textures into a singular large texture helps to optimize video memory costs and render calls.
 Multiple **AtlasTexture** resources can be cropped from the same :ref:`atlas<class_AtlasTexture_property_atlas>`. Packing many smaller textures into a singular large texture helps to optimize video memory costs and render calls.
 
 
-\ **Note:** **AtlasTexture** cannot be used in an :ref:`AnimatedTexture<class_AnimatedTexture>`, and may not tile properly in nodes such as :ref:`TextureRect<class_TextureRect>`, when inside other **AtlasTexture** resources.
+\ **Note:** **AtlasTexture** cannot be used in an :ref:`AnimatedTexture<class_AnimatedTexture>`, and will not tile properly in nodes such as :ref:`TextureRect<class_TextureRect>` or :ref:`Sprite2D<class_Sprite2D>`. To tile an **AtlasTexture**, modify its :ref:`region<class_AtlasTexture_property_region>` instead.
 
 
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 

+ 5 - 23
classes/class_audioeffectfilter.rst

@@ -69,11 +69,7 @@ enum **FilterDB**: :ref:`🔗<enum_AudioEffectFilter_FilterDB>`
 
 
 :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_6DB** = ``0``
 :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_6DB** = ``0``
 
 
-.. container:: contribute
-
-	There is currently no description for this enum. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
-
-
+Cutting off at 6dB per octave.
 
 
 .. _class_AudioEffectFilter_constant_FILTER_12DB:
 .. _class_AudioEffectFilter_constant_FILTER_12DB:
 
 
@@ -81,11 +77,7 @@ enum **FilterDB**: :ref:`🔗<enum_AudioEffectFilter_FilterDB>`
 
 
 :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_12DB** = ``1``
 :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_12DB** = ``1``
 
 
-.. container:: contribute
-
-	There is currently no description for this enum. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
-
-
+Cutting off at 12dB per octave.
 
 
 .. _class_AudioEffectFilter_constant_FILTER_18DB:
 .. _class_AudioEffectFilter_constant_FILTER_18DB:
 
 
@@ -93,11 +85,7 @@ enum **FilterDB**: :ref:`🔗<enum_AudioEffectFilter_FilterDB>`
 
 
 :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_18DB** = ``2``
 :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_18DB** = ``2``
 
 
-.. container:: contribute
-
-	There is currently no description for this enum. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
-
-
+Cutting off at 18dB per octave.
 
 
 .. _class_AudioEffectFilter_constant_FILTER_24DB:
 .. _class_AudioEffectFilter_constant_FILTER_24DB:
 
 
@@ -105,11 +93,7 @@ enum **FilterDB**: :ref:`🔗<enum_AudioEffectFilter_FilterDB>`
 
 
 :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_24DB** = ``3``
 :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **FILTER_24DB** = ``3``
 
 
-.. container:: contribute
-
-	There is currently no description for this enum. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
-
-
+Cutting off at 24dB per octave.
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -148,9 +132,7 @@ Threshold frequency for the filter, in Hz.
 - |void| **set_db**\ (\ value\: :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>`\ )
 - |void| **set_db**\ (\ value\: :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>`\ )
 - :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **get_db**\ (\ )
 - :ref:`FilterDB<enum_AudioEffectFilter_FilterDB>` **get_db**\ (\ )
 
 
-.. container:: contribute
-
-	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Steepness of the cutoff curve in dB per octave, also known as the order of the filter. Higher orders have a more aggressive cutoff.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 

+ 3 - 7
classes/class_audioeffectstereoenhance.rst

@@ -64,7 +64,7 @@ Property Descriptions
 - |void| **set_pan_pullout**\ (\ value\: :ref:`float<class_float>`\ )
 - |void| **set_pan_pullout**\ (\ value\: :ref:`float<class_float>`\ )
 - :ref:`float<class_float>` **get_pan_pullout**\ (\ )
 - :ref:`float<class_float>` **get_pan_pullout**\ (\ )
 
 
-Values greater than 1.0 increase intensity of any panning on audio passing through this effect, whereas values less than 1.0 will decrease the panning intensity. A value of 0.0 will downmix audio to mono.
+Amplifies the difference between stereo channels, increasing or decreasing existing panning. A value of 0.0 will downmix stereo to mono. Does not affect a mono signal.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -81,9 +81,7 @@ Values greater than 1.0 increase intensity of any panning on audio passing throu
 - |void| **set_surround**\ (\ value\: :ref:`float<class_float>`\ )
 - |void| **set_surround**\ (\ value\: :ref:`float<class_float>`\ )
 - :ref:`float<class_float>` **get_surround**\ (\ )
 - :ref:`float<class_float>` **get_surround**\ (\ )
 
 
-.. container:: contribute
-
-	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Widens sound stage through phase shifting in conjunction with :ref:`time_pullout_ms<class_AudioEffectStereoEnhance_property_time_pullout_ms>`. Just pans sound to the left channel if :ref:`time_pullout_ms<class_AudioEffectStereoEnhance_property_time_pullout_ms>` is 0.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -100,9 +98,7 @@ Values greater than 1.0 increase intensity of any panning on audio passing throu
 - |void| **set_time_pullout**\ (\ value\: :ref:`float<class_float>`\ )
 - |void| **set_time_pullout**\ (\ value\: :ref:`float<class_float>`\ )
 - :ref:`float<class_float>` **get_time_pullout**\ (\ )
 - :ref:`float<class_float>` **get_time_pullout**\ (\ )
 
 
-.. container:: contribute
-
-	There is currently no description for this property. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
+Widens sound stage through phase shifting in conjunction with :ref:`surround<class_AudioEffectStereoEnhance_property_surround>`. Just delays the right channel if :ref:`surround<class_AudioEffectStereoEnhance_property_surround>` is 0.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 14 - 0
classes/class_audioserver.rst

@@ -87,6 +87,8 @@ Methods
    +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                             | :ref:`get_bus_volume_db<class_AudioServer_method_get_bus_volume_db>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const|                                                                              |
    | :ref:`float<class_float>`                             | :ref:`get_bus_volume_db<class_AudioServer_method_get_bus_volume_db>`\ (\ bus_idx\: :ref:`int<class_int>`\ ) |const|                                                                              |
    +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`String<class_String>`                           | :ref:`get_driver_name<class_AudioServer_method_get_driver_name>`\ (\ ) |const|                                                                                                                   |
+   +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`PackedStringArray<class_PackedStringArray>`     | :ref:`get_input_device_list<class_AudioServer_method_get_input_device_list>`\ (\ )                                                                                                               |
    | :ref:`PackedStringArray<class_PackedStringArray>`     | :ref:`get_input_device_list<class_AudioServer_method_get_input_device_list>`\ (\ )                                                                                                               |
    +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`float<class_float>`                             | :ref:`get_mix_rate<class_AudioServer_method_get_mix_rate>`\ (\ ) |const|                                                                                                                         |
    | :ref:`float<class_float>`                             | :ref:`get_mix_rate<class_AudioServer_method_get_mix_rate>`\ (\ ) |const|                                                                                                                         |
@@ -514,6 +516,18 @@ Returns the volume of the bus at index ``bus_idx`` in dB.
 
 
 ----
 ----
 
 
+.. _class_AudioServer_method_get_driver_name:
+
+.. rst-class:: classref-method
+
+:ref:`String<class_String>` **get_driver_name**\ (\ ) |const| :ref:`🔗<class_AudioServer_method_get_driver_name>`
+
+Returns the name of the current audio driver. The default usually depends on the operating system, but may be overridden via the ``--audio-driver`` :doc:`command line argument <../tutorials/editor/command_line_tutorial>`. ``--headless`` also automatically sets the audio driver to ``Dummy``. See also :ref:`ProjectSettings.audio/driver/driver<class_ProjectSettings_property_audio/driver/driver>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_AudioServer_method_get_input_device_list:
 .. _class_AudioServer_method_get_input_device_list:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method

+ 102 - 0
classes/class_audiostreamplayback.rst

@@ -59,10 +59,24 @@ Methods
    +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                                                | :ref:`_tag_used_streams<class_AudioStreamPlayback_private_method__tag_used_streams>`\ (\ ) |virtual|                                                                              |
    | |void|                                                | :ref:`_tag_used_streams<class_AudioStreamPlayback_private_method__tag_used_streams>`\ (\ ) |virtual|                                                                              |
    +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                                 | :ref:`get_loop_count<class_AudioStreamPlayback_method_get_loop_count>`\ (\ ) |const|                                                                                              |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`float<class_float>`                             | :ref:`get_playback_position<class_AudioStreamPlayback_method_get_playback_position>`\ (\ ) |const|                                                                                |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`AudioSamplePlayback<class_AudioSamplePlayback>` | :ref:`get_sample_playback<class_AudioStreamPlayback_method_get_sample_playback>`\ (\ ) |const|                                                                                    |
    | :ref:`AudioSamplePlayback<class_AudioSamplePlayback>` | :ref:`get_sample_playback<class_AudioStreamPlayback_method_get_sample_playback>`\ (\ ) |const|                                                                                    |
    +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                               | :ref:`is_playing<class_AudioStreamPlayback_method_is_playing>`\ (\ ) |const|                                                                                                      |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`PackedVector2Array<class_PackedVector2Array>`   | :ref:`mix_audio<class_AudioStreamPlayback_method_mix_audio>`\ (\ rate_scale\: :ref:`float<class_float>`, frames\: :ref:`int<class_int>`\ )                                        |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`seek<class_AudioStreamPlayback_method_seek>`\ (\ time\: :ref:`float<class_float>` = 0.0\ )                                                                                  |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                                                | :ref:`set_sample_playback<class_AudioStreamPlayback_method_set_sample_playback>`\ (\ playback_sample\: :ref:`AudioSamplePlayback<class_AudioSamplePlayback>`\ )                   |
    | |void|                                                | :ref:`set_sample_playback<class_AudioStreamPlayback_method_set_sample_playback>`\ (\ playback_sample\: :ref:`AudioSamplePlayback<class_AudioSamplePlayback>`\ )                   |
    +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`start<class_AudioStreamPlayback_method_start>`\ (\ from_pos\: :ref:`float<class_float>` = 0.0\ )                                                                            |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                | :ref:`stop<class_AudioStreamPlayback_method_stop>`\ (\ )                                                                                                                          |
+   +-------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -195,6 +209,30 @@ Overridable method. Called whenever the audio stream is mixed if the playback is
 
 
 ----
 ----
 
 
+.. _class_AudioStreamPlayback_method_get_loop_count:
+
+.. rst-class:: classref-method
+
+:ref:`int<class_int>` **get_loop_count**\ (\ ) |const| :ref:`🔗<class_AudioStreamPlayback_method_get_loop_count>`
+
+Returns the number of times the stream has looped.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AudioStreamPlayback_method_get_playback_position:
+
+.. rst-class:: classref-method
+
+:ref:`float<class_float>` **get_playback_position**\ (\ ) |const| :ref:`🔗<class_AudioStreamPlayback_method_get_playback_position>`
+
+Returns the current position in the stream, in seconds.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_AudioStreamPlayback_method_get_sample_playback:
 .. _class_AudioStreamPlayback_method_get_sample_playback:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
@@ -209,6 +247,46 @@ Returns the :ref:`AudioSamplePlayback<class_AudioSamplePlayback>` associated wit
 
 
 ----
 ----
 
 
+.. _class_AudioStreamPlayback_method_is_playing:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_playing**\ (\ ) |const| :ref:`🔗<class_AudioStreamPlayback_method_is_playing>`
+
+Returns ``true`` if the stream is playing.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AudioStreamPlayback_method_mix_audio:
+
+.. rst-class:: classref-method
+
+:ref:`PackedVector2Array<class_PackedVector2Array>` **mix_audio**\ (\ rate_scale\: :ref:`float<class_float>`, frames\: :ref:`int<class_int>`\ ) :ref:`🔗<class_AudioStreamPlayback_method_mix_audio>`
+
+Mixes up to ``frames`` of audio from the stream from the current position, at a rate of ``rate_scale``, advancing the stream.
+
+Returns a :ref:`PackedVector2Array<class_PackedVector2Array>` where each element holds the left and right channel volume levels of each frame.
+
+\ **Note:** Can return fewer frames than requested, make sure to use the size of the return value.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AudioStreamPlayback_method_seek:
+
+.. rst-class:: classref-method
+
+|void| **seek**\ (\ time\: :ref:`float<class_float>` = 0.0\ ) :ref:`🔗<class_AudioStreamPlayback_method_seek>`
+
+Seeks the stream at the given ``time``, in seconds.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_AudioStreamPlayback_method_set_sample_playback:
 .. _class_AudioStreamPlayback_method_set_sample_playback:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
@@ -219,6 +297,30 @@ Returns the :ref:`AudioSamplePlayback<class_AudioSamplePlayback>` associated wit
 
 
 Associates :ref:`AudioSamplePlayback<class_AudioSamplePlayback>` to this **AudioStreamPlayback** for playing back the audio sample of this stream.
 Associates :ref:`AudioSamplePlayback<class_AudioSamplePlayback>` to this **AudioStreamPlayback** for playing back the audio sample of this stream.
 
 
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AudioStreamPlayback_method_start:
+
+.. rst-class:: classref-method
+
+|void| **start**\ (\ from_pos\: :ref:`float<class_float>` = 0.0\ ) :ref:`🔗<class_AudioStreamPlayback_method_start>`
+
+Starts the stream from the given ``from_pos``, in seconds.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_AudioStreamPlayback_method_stop:
+
+.. rst-class:: classref-method
+
+|void| **stop**\ (\ ) :ref:`🔗<class_AudioStreamPlayback_method_stop>`
+
+Stops the stream.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 7 - 0
classes/class_backbuffercopy.rst

@@ -23,6 +23,13 @@ Node for back-buffering the currently-displayed screen. The region defined in th
 
 
 \ **Note:** Since this node inherits from :ref:`Node2D<class_Node2D>` (and not :ref:`Control<class_Control>`), anchors and margins won't apply to child :ref:`Control<class_Control>`-derived nodes. This can be problematic when resizing the window. To avoid this, add :ref:`Control<class_Control>`-derived nodes as *siblings* to the **BackBufferCopy** node instead of adding them as children.
 \ **Note:** Since this node inherits from :ref:`Node2D<class_Node2D>` (and not :ref:`Control<class_Control>`), anchors and margins won't apply to child :ref:`Control<class_Control>`-derived nodes. This can be problematic when resizing the window. To avoid this, add :ref:`Control<class_Control>`-derived nodes as *siblings* to the **BackBufferCopy** node instead of adding them as children.
 
 
+.. rst-class:: classref-introduction-group
+
+Tutorials
+---------
+
+- :doc:`Screen-reading shaders <../tutorials/shaders/screen-reading_shaders>`
+
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 
 Properties
 Properties

+ 9 - 3
classes/class_canvasitem.rst

@@ -191,7 +191,7 @@ Methods
    +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`               | :ref:`is_visible_in_tree<class_CanvasItem_method_is_visible_in_tree>`\ (\ ) |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
    | :ref:`bool<class_bool>`               | :ref:`is_visible_in_tree<class_CanvasItem_method_is_visible_in_tree>`\ (\ ) |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
    +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Vector2<class_Vector2>`         | :ref:`make_canvas_position_local<class_CanvasItem_method_make_canvas_position_local>`\ (\ screen_point\: :ref:`Vector2<class_Vector2>`\ ) |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
+   | :ref:`Vector2<class_Vector2>`         | :ref:`make_canvas_position_local<class_CanvasItem_method_make_canvas_position_local>`\ (\ viewport_point\: :ref:`Vector2<class_Vector2>`\ ) |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
    +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`InputEvent<class_InputEvent>`   | :ref:`make_input_local<class_CanvasItem_method_make_input_local>`\ (\ event\: :ref:`InputEvent<class_InputEvent>`\ ) |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
    | :ref:`InputEvent<class_InputEvent>`   | :ref:`make_input_local<class_CanvasItem_method_make_input_local>`\ (\ event\: :ref:`InputEvent<class_InputEvent>`\ ) |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
    +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +---------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -1486,9 +1486,15 @@ Visibility is checked only in parent nodes that inherit from **CanvasItem**, :re
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-:ref:`Vector2<class_Vector2>` **make_canvas_position_local**\ (\ screen_point\: :ref:`Vector2<class_Vector2>`\ ) |const| :ref:`🔗<class_CanvasItem_method_make_canvas_position_local>`
+:ref:`Vector2<class_Vector2>` **make_canvas_position_local**\ (\ viewport_point\: :ref:`Vector2<class_Vector2>`\ ) |const| :ref:`🔗<class_CanvasItem_method_make_canvas_position_local>`
 
 
-Assigns ``screen_point`` as this node's new local transform.
+Transforms ``viewport_point`` from the viewport's coordinates to this node's local coordinates.
+
+For the opposite operation, use :ref:`get_global_transform_with_canvas<class_CanvasItem_method_get_global_transform_with_canvas>`.
+
+::
+
+    var viewport_point = get_global_transform_with_canvas() * local_point
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 

+ 7 - 0
classes/class_canvasmodulate.rst

@@ -24,6 +24,13 @@ Description
 
 
 **CanvasModulate** applies a color tint to all nodes on a canvas. Only one can be used to tint a canvas, but :ref:`CanvasLayer<class_CanvasLayer>`\ s can be used to render things independently.
 **CanvasModulate** applies a color tint to all nodes on a canvas. Only one can be used to tint a canvas, but :ref:`CanvasLayer<class_CanvasLayer>`\ s can be used to render things independently.
 
 
+.. rst-class:: classref-introduction-group
+
+Tutorials
+---------
+
+- :doc:`2D lights and shadows <../tutorials/2d/2d_lights_and_shadows>`
+
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 
 Properties
 Properties

+ 29 - 3
classes/class_control.rst

@@ -996,11 +996,11 @@ enum **LayoutDirection**: :ref:`🔗<enum_Control_LayoutDirection>`
 
 
 Automatic layout direction, determined from the parent control layout direction.
 Automatic layout direction, determined from the parent control layout direction.
 
 
-.. _class_Control_constant_LAYOUT_DIRECTION_LOCALE:
+.. _class_Control_constant_LAYOUT_DIRECTION_APPLICATION_LOCALE:
 
 
 .. rst-class:: classref-enumeration-constant
 .. rst-class:: classref-enumeration-constant
 
 
-:ref:`LayoutDirection<enum_Control_LayoutDirection>` **LAYOUT_DIRECTION_LOCALE** = ``1``
+:ref:`LayoutDirection<enum_Control_LayoutDirection>` **LAYOUT_DIRECTION_APPLICATION_LOCALE** = ``1``
 
 
 Automatic layout direction, determined from the current locale.
 Automatic layout direction, determined from the current locale.
 
 
@@ -1020,6 +1020,32 @@ Left-to-right layout direction.
 
 
 Right-to-left layout direction.
 Right-to-left layout direction.
 
 
+.. _class_Control_constant_LAYOUT_DIRECTION_SYSTEM_LOCALE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LayoutDirection<enum_Control_LayoutDirection>` **LAYOUT_DIRECTION_SYSTEM_LOCALE** = ``4``
+
+Automatic layout direction, determined from the system locale.
+
+.. _class_Control_constant_LAYOUT_DIRECTION_MAX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LayoutDirection<enum_Control_LayoutDirection>` **LAYOUT_DIRECTION_MAX** = ``5``
+
+Represents the size of the :ref:`LayoutDirection<enum_Control_LayoutDirection>` enum.
+
+.. _class_Control_constant_LAYOUT_DIRECTION_LOCALE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LayoutDirection<enum_Control_LayoutDirection>` **LAYOUT_DIRECTION_LOCALE** = ``1``
+
+**Deprecated:** Use :ref:`LAYOUT_DIRECTION_APPLICATION_LOCALE<class_Control_constant_LAYOUT_DIRECTION_APPLICATION_LOCALE>` instead.
+
+
+
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
 ----
 ----
@@ -2011,7 +2037,7 @@ Godot calls this method to pass you the ``data`` from a control's :ref:`_get_dra
 
 
     public override bool _CanDropData(Vector2 atPosition, Variant data)
     public override bool _CanDropData(Vector2 atPosition, Variant data)
     {
     {
-        return data.VariantType == Variant.Type.Dictionary && dict.AsGodotDictionary().ContainsKey("color");
+        return data.VariantType == Variant.Type.Dictionary && data.AsGodotDictionary().ContainsKey("color");
     }
     }
     
     
     public override void _DropData(Vector2 atPosition, Variant data)
     public override void _DropData(Vector2 atPosition, Variant data)

+ 47 - 1
classes/class_displayserver.rst

@@ -1062,6 +1062,8 @@ Full screen mode with full multi-window support.
 
 
 Full screen window covers the entire display area of a screen and has no decorations. The display's video mode is not changed.
 Full screen window covers the entire display area of a screen and has no decorations. The display's video mode is not changed.
 
 
+\ **On Android:** This enables immersive mode.
+
 \ **On Windows:** Multi-window full-screen mode has a 1px border of the :ref:`ProjectSettings.rendering/environment/defaults/default_clear_color<class_ProjectSettings_property_rendering/environment/defaults/default_clear_color>` color.
 \ **On Windows:** Multi-window full-screen mode has a 1px border of the :ref:`ProjectSettings.rendering/environment/defaults/default_clear_color<class_ProjectSettings_property_rendering/environment/defaults/default_clear_color>` color.
 
 
 \ **On macOS:** A new desktop is used to display the running project.
 \ **On macOS:** A new desktop is used to display the running project.
@@ -1078,6 +1080,8 @@ A single window full screen mode. This mode has less overhead, but only one wind
 
 
 Full screen window covers the entire display area of a screen and has no border or decorations. The display's video mode is not changed.
 Full screen window covers the entire display area of a screen and has no border or decorations. The display's video mode is not changed.
 
 
+\ **On Android:** This enables immersive mode.
+
 \ **On Windows:** Depending on video driver, full screen transition might cause screens to go black for a moment.
 \ **On Windows:** Depending on video driver, full screen transition might cause screens to go black for a moment.
 
 
 \ **On macOS:** A new desktop is used to display the running project. Exclusive full screen mode prevents Dock and Menu from showing up when the mouse pointer is hovering the edge of the screen.
 \ **On macOS:** A new desktop is used to display the running project. Exclusive full screen mode prevents Dock and Menu from showing up when the mouse pointer is hovering the edge of the screen.
@@ -1170,11 +1174,21 @@ Use :ref:`window_get_safe_title_margins<class_DisplayServer_method_window_get_sa
 
 
 All mouse events are passed to the underlying window of the same application.
 All mouse events are passed to the underlying window of the same application.
 
 
+.. _class_DisplayServer_constant_WINDOW_FLAG_SHARP_CORNERS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`WindowFlags<enum_DisplayServer_WindowFlags>` **WINDOW_FLAG_SHARP_CORNERS** = ``8``
+
+Window style is overridden, forcing sharp corners.
+
+\ **Note:** This flag is implemented only on Windows (11).
+
 .. _class_DisplayServer_constant_WINDOW_FLAG_MAX:
 .. _class_DisplayServer_constant_WINDOW_FLAG_MAX:
 
 
 .. rst-class:: classref-enumeration-constant
 .. rst-class:: classref-enumeration-constant
 
 
-:ref:`WindowFlags<enum_DisplayServer_WindowFlags>` **WINDOW_FLAG_MAX** = ``8``
+:ref:`WindowFlags<enum_DisplayServer_WindowFlags>` **WINDOW_FLAG_MAX** = ``9``
 
 
 Max value of the :ref:`WindowFlags<enum_DisplayServer_WindowFlags>`.
 Max value of the :ref:`WindowFlags<enum_DisplayServer_WindowFlags>`.
 
 
@@ -1322,6 +1336,8 @@ Display handle:
 
 
 - Linux (X11): ``X11::Display*`` for the display.
 - Linux (X11): ``X11::Display*`` for the display.
 
 
+- Linux (Wayland): ``wl_display`` for the display.
+
 - Android: ``EGLDisplay`` for the display.
 - Android: ``EGLDisplay`` for the display.
 
 
 .. _class_DisplayServer_constant_WINDOW_HANDLE:
 .. _class_DisplayServer_constant_WINDOW_HANDLE:
@@ -1336,6 +1352,8 @@ Window handle:
 
 
 - Linux (X11): ``X11::Window*`` for the window.
 - Linux (X11): ``X11::Window*`` for the window.
 
 
+- Linux (Wayland): ``wl_surface`` for the window.
+
 - macOS: ``NSWindow*`` for the window.
 - macOS: ``NSWindow*`` for the window.
 
 
 - iOS: ``UIViewController*`` for the view controller.
 - iOS: ``UIViewController*`` for the view controller.
@@ -1368,10 +1386,36 @@ OpenGL context (only with the GL Compatibility renderer):
 
 
 - Linux (X11): ``GLXContext*`` for the window.
 - Linux (X11): ``GLXContext*`` for the window.
 
 
+- Linux (Wayland): ``EGLContext`` for the window.
+
 - macOS: ``NSOpenGLContext*`` for the window (native GL), or ``EGLContext`` for the window (ANGLE).
 - macOS: ``NSOpenGLContext*`` for the window (native GL), or ``EGLContext`` for the window (ANGLE).
 
 
 - Android: ``EGLContext`` for the window.
 - Android: ``EGLContext`` for the window.
 
 
+.. _class_DisplayServer_constant_EGL_DISPLAY:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandleType<enum_DisplayServer_HandleType>` **EGL_DISPLAY** = ``4``
+
+- Windows: ``EGLDisplay`` for the window (ANGLE).
+
+- macOS: ``EGLDisplay`` for the window (ANGLE).
+
+- Linux (Wayland): ``EGLDisplay`` for the window.
+
+.. _class_DisplayServer_constant_EGL_CONFIG:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`HandleType<enum_DisplayServer_HandleType>` **EGL_CONFIG** = ``5``
+
+- Windows: ``EGLConfig`` for the window (ANGLE).
+
+- macOS: ``EGLConfig`` for the window (ANGLE).
+
+- Linux (Wayland): ``EGLConfig`` for the window.
+
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
 ----
 ----
@@ -4273,6 +4317,8 @@ Sets the minimum size for the given window to ``min_size`` in pixels. Normally,
 
 
 Sets window mode for the given window to ``mode``. See :ref:`WindowMode<enum_DisplayServer_WindowMode>` for possible values and how each mode behaves.
 Sets window mode for the given window to ``mode``. See :ref:`WindowMode<enum_DisplayServer_WindowMode>` for possible values and how each mode behaves.
 
 
+\ **Note:** On Android, setting it to :ref:`WINDOW_MODE_FULLSCREEN<class_DisplayServer_constant_WINDOW_MODE_FULLSCREEN>` or :ref:`WINDOW_MODE_EXCLUSIVE_FULLSCREEN<class_DisplayServer_constant_WINDOW_MODE_EXCLUSIVE_FULLSCREEN>` will enable immersive mode.
+
 \ **Note:** Setting the window to full screen forcibly sets the borderless flag to ``true``, so make sure to set it back to ``false`` when not wanted.
 \ **Note:** Setting the window to full screen forcibly sets the borderless flag to ``true``, so make sure to set it back to ``false`` when not wanted.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator

+ 32 - 6
classes/class_editordebuggerplugin.rst

@@ -37,18 +37,20 @@ You can retrieve the available :ref:`EditorDebuggerSession<class_EditorDebuggerS
     
     
     class ExampleEditorDebugger extends EditorDebuggerPlugin:
     class ExampleEditorDebugger extends EditorDebuggerPlugin:
     
     
-        func _has_capture(prefix):
-            # Return true if you wish to handle message with this prefix.
-            return prefix == "my_plugin"
+        func _has_capture(capture):
+            # Return true if you wish to handle messages with the prefix "my_plugin:".
+            return capture == "my_plugin"
     
     
         func _capture(message, data, session_id):
         func _capture(message, data, session_id):
             if message == "my_plugin:ping":
             if message == "my_plugin:ping":
                 get_session(session_id).send_message("my_plugin:echo", data)
                 get_session(session_id).send_message("my_plugin:echo", data)
+                return true
+            return false
     
     
         func _setup_session(session_id):
         func _setup_session(session_id):
             # Add a new tab in the debugger session UI containing a label.
             # Add a new tab in the debugger session UI containing a label.
             var label = Label.new()
             var label = Label.new()
-            label.name = "Example plugin"
+            label.name = "Example plugin" # Will be used as the tab title.
             label.text = "Example plugin"
             label.text = "Example plugin"
             var session = get_session(session_id)
             var session = get_session(session_id)
             # Listens to the session started and stopped signals.
             # Listens to the session started and stopped signals.
@@ -66,6 +68,30 @@ You can retrieve the available :ref:`EditorDebuggerSession<class_EditorDebuggerS
 
 
 
 
 
 
+To connect on the running game side, use the :ref:`EngineDebugger<class_EngineDebugger>` singleton:
+
+
+.. tabs::
+
+ .. code-tab:: gdscript
+
+    extends Node
+    
+    func _ready():
+        EngineDebugger.register_message_capture("my_plugin", _capture)
+        EngineDebugger.send_message("my_plugin:ping", ["test"])
+    
+    func _capture(message, data):
+        # Note that the "my_plugin:" prefix is not used here.
+        if message == "echo":
+            prints("Echo received:", data)
+            return true
+        return false
+
+
+
+\ **Note:** While the game is running, :ref:`@GlobalScope.print<class_@GlobalScope_method_print>` and similar functions *called in the editor* do not print anything, the Output Log prints only game messages.
+
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 
 Methods
 Methods
@@ -131,7 +157,7 @@ Override this method to be notified when all breakpoints are cleared in the edit
 
 
 :ref:`bool<class_bool>` **_capture**\ (\ message\: :ref:`String<class_String>`, data\: :ref:`Array<class_Array>`, session_id\: :ref:`int<class_int>`\ ) |virtual| :ref:`🔗<class_EditorDebuggerPlugin_private_method__capture>`
 :ref:`bool<class_bool>` **_capture**\ (\ message\: :ref:`String<class_String>`, data\: :ref:`Array<class_Array>`, session_id\: :ref:`int<class_int>`\ ) |virtual| :ref:`🔗<class_EditorDebuggerPlugin_private_method__capture>`
 
 
-Override this method to process incoming messages. The ``session_id`` is the ID of the :ref:`EditorDebuggerSession<class_EditorDebuggerSession>` that received the message (which you can retrieve via :ref:`get_session<class_EditorDebuggerPlugin_method_get_session>`).
+Override this method to process incoming messages. The ``session_id`` is the ID of the :ref:`EditorDebuggerSession<class_EditorDebuggerSession>` that received the ``message``. Use :ref:`get_session<class_EditorDebuggerPlugin_method_get_session>` to retrieve the session. This method should return ``true`` if the message is recognized.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -167,7 +193,7 @@ Override this method to enable receiving messages from the debugger. If ``captur
 
 
 |void| **_setup_session**\ (\ session_id\: :ref:`int<class_int>`\ ) |virtual| :ref:`🔗<class_EditorDebuggerPlugin_private_method__setup_session>`
 |void| **_setup_session**\ (\ session_id\: :ref:`int<class_int>`\ ) |virtual| :ref:`🔗<class_EditorDebuggerPlugin_private_method__setup_session>`
 
 
-Override this method to be notified whenever a new :ref:`EditorDebuggerSession<class_EditorDebuggerSession>` is created (the session may be inactive during this stage).
+Override this method to be notified whenever a new :ref:`EditorDebuggerSession<class_EditorDebuggerSession>` is created. Note that the session may be inactive during this stage.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 

+ 1 - 1
classes/class_editordebuggersession.rst

@@ -117,7 +117,7 @@ Method Descriptions
 
 
 |void| **add_session_tab**\ (\ control\: :ref:`Control<class_Control>`\ ) :ref:`🔗<class_EditorDebuggerSession_method_add_session_tab>`
 |void| **add_session_tab**\ (\ control\: :ref:`Control<class_Control>`\ ) :ref:`🔗<class_EditorDebuggerSession_method_add_session_tab>`
 
 
-Adds the given ``control`` to the debug session UI in the debugger bottom panel.
+Adds the given ``control`` to the debug session UI in the debugger bottom panel. The ``control``'s node name will be used as the tab title.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 

+ 1 - 1
classes/class_editorexportplatformandroid.rst

@@ -2700,7 +2700,7 @@ Allows an application to write to the user dictionary.
 
 
 :ref:`bool<class_bool>` **screen/immersive_mode** :ref:`🔗<class_EditorExportPlatformAndroid_property_screen/immersive_mode>`
 :ref:`bool<class_bool>` **screen/immersive_mode** :ref:`🔗<class_EditorExportPlatformAndroid_property_screen/immersive_mode>`
 
 
-If ``true``, hides navigation and status bar.
+If ``true``, hides navigation and status bar. See :ref:`DisplayServer.window_set_mode<class_DisplayServer_method_window_set_mode>` to toggle it at runtime.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 

+ 3 - 1
classes/class_enginedebugger.rst

@@ -266,7 +266,9 @@ Calls the ``toggle`` callable of the profiler with given ``name`` and ``argument
 
 
 Registers a message capture with given ``name``. If ``name`` is "my_message" then messages starting with "my_message:" will be called with the given callable.
 Registers a message capture with given ``name``. If ``name`` is "my_message" then messages starting with "my_message:" will be called with the given callable.
 
 
-Callable must accept a message string and a data array as argument. If the message and data are valid then callable must return ``true`` otherwise ``false``.
+The callable must accept a message string and a data array as argument. The callable should return ``true`` if the message is recognized.
+
+\ **Note:** The callable will receive the message with the prefix stripped, unlike :ref:`EditorDebuggerPlugin._capture<class_EditorDebuggerPlugin_private_method__capture>`. See the :ref:`EditorDebuggerPlugin<class_EditorDebuggerPlugin>` description for an example.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 

+ 22 - 0
classes/class_geometry2d.rst

@@ -29,6 +29,8 @@ Methods
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
+   +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Array<class_Array>`\[:ref:`Vector2i<class_Vector2i>`\]                     | :ref:`bresenham_line<class_Geometry2D_method_bresenham_line>`\ (\ from\: :ref:`Vector2i<class_Vector2i>`, to\: :ref:`Vector2i<class_Vector2i>`\ )                                                                                                                                                           |
    +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Array<class_Array>`\[:ref:`PackedVector2Array<class_PackedVector2Array>`\] | :ref:`clip_polygons<class_Geometry2D_method_clip_polygons>`\ (\ polygon_a\: :ref:`PackedVector2Array<class_PackedVector2Array>`, polygon_b\: :ref:`PackedVector2Array<class_PackedVector2Array>`\ )                                                                                                         |
    | :ref:`Array<class_Array>`\[:ref:`PackedVector2Array<class_PackedVector2Array>`\] | :ref:`clip_polygons<class_Geometry2D_method_clip_polygons>`\ (\ polygon_a\: :ref:`PackedVector2Array<class_PackedVector2Array>`, polygon_b\: :ref:`PackedVector2Array<class_PackedVector2Array>`\ )                                                                                                         |
    +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +----------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -217,6 +219,26 @@ Endpoints are rounded off and extended by ``delta`` units.
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 
+.. _class_Geometry2D_method_bresenham_line:
+
+.. rst-class:: classref-method
+
+:ref:`Array<class_Array>`\[:ref:`Vector2i<class_Vector2i>`\] **bresenham_line**\ (\ from\: :ref:`Vector2i<class_Vector2i>`, to\: :ref:`Vector2i<class_Vector2i>`\ ) :ref:`🔗<class_Geometry2D_method_bresenham_line>`
+
+Returns the `Bresenham line <https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm>`__ between the ``from`` and ``to`` points. A Bresenham line is a series of pixels that draws a line and is always 1-pixel thick on every row and column of the drawing (never more, never less).
+
+Example code to draw a line between two :ref:`Marker2D<class_Marker2D>` nodes using a series of :ref:`CanvasItem.draw_rect<class_CanvasItem_method_draw_rect>` calls:
+
+::
+
+    func _draw():
+        for pixel in Geometry2D.bresenham_line($MarkerA.position, $MarkerB.position):
+            draw_rect(Rect2(pixel, Vector2.ONE), Color.WHITE)
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_Geometry2D_method_clip_polygons:
 .. _class_Geometry2D_method_clip_polygons:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method

+ 2 - 10
classes/class_httprequest.rst

@@ -290,11 +290,7 @@ Request successful.
 
 
 :ref:`Result<enum_HTTPRequest_Result>` **RESULT_CHUNKED_BODY_SIZE_MISMATCH** = ``1``
 :ref:`Result<enum_HTTPRequest_Result>` **RESULT_CHUNKED_BODY_SIZE_MISMATCH** = ``1``
 
 
-.. container:: contribute
-
-	There is currently no description for this enum. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
-
-
+Request failed due to a mismatch between the expected and actual chunked body size during transfer. Possible causes include network errors, server misconfiguration, or issues with chunked encoding.
 
 
 .. _class_HTTPRequest_constant_RESULT_CANT_CONNECT:
 .. _class_HTTPRequest_constant_RESULT_CANT_CONNECT:
 
 
@@ -350,11 +346,7 @@ Request exceeded its maximum size limit, see :ref:`body_size_limit<class_HTTPReq
 
 
 :ref:`Result<enum_HTTPRequest_Result>` **RESULT_BODY_DECOMPRESS_FAILED** = ``8``
 :ref:`Result<enum_HTTPRequest_Result>` **RESULT_BODY_DECOMPRESS_FAILED** = ``8``
 
 
-.. container:: contribute
-
-	There is currently no description for this enum. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
-
-
+Request failed due to an error while decompressing the response body. Possible causes include unsupported or incorrect compression format, corrupted data, or incomplete transfer.
 
 
 .. _class_HTTPRequest_constant_RESULT_REQUEST_FAILED:
 .. _class_HTTPRequest_constant_RESULT_REQUEST_FAILED:
 
 

+ 1 - 1
classes/class_inputeventmousemotion.rst

@@ -21,7 +21,7 @@ Description
 
 
 Stores information about a mouse or a pen motion. This includes relative position, absolute position, and velocity. See :ref:`Node._input<class_Node_private_method__input>`.
 Stores information about a mouse or a pen motion. This includes relative position, absolute position, and velocity. See :ref:`Node._input<class_Node_private_method__input>`.
 
 
-\ **Note:** By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, set :ref:`Input.use_accumulated_input<class_Input_property_use_accumulated_input>` to ``false`` to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider implementing `Bresenham's line algorithm <https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm>`__ as well to avoid visible gaps in lines if the user is moving the mouse quickly.
+\ **Note:** By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, set :ref:`Input.use_accumulated_input<class_Input_property_use_accumulated_input>` to ``false`` to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider using :ref:`Geometry2D.bresenham_line<class_Geometry2D_method_bresenham_line>` as well to avoid visible gaps in lines if the user is moving the mouse quickly.
 
 
 \ **Note:** This event may be emitted even when the mouse hasn't moved, either by the operating system or by Godot itself. If you really need to know if the mouse has moved (e.g. to suppress displaying a tooltip), you should check that ``relative.is_zero_approx()`` is ``false``.
 \ **Note:** This event may be emitted even when the mouse hasn't moved, either by the operating system or by Godot itself. If you really need to know if the mouse has moved (e.g. to suppress displaying a tooltip), you should check that ``relative.is_zero_approx()`` is ``false``.
 
 

+ 19 - 0
classes/class_light3d.rst

@@ -85,6 +85,8 @@ Properties
    +----------------------------------------+----------------------------------------------------------------------------------------+-----------------------+
    +----------------------------------------+----------------------------------------------------------------------------------------+-----------------------+
    | :ref:`float<class_float>`              | :ref:`shadow_blur<class_Light3D_property_shadow_blur>`                                 | ``1.0``               |
    | :ref:`float<class_float>`              | :ref:`shadow_blur<class_Light3D_property_shadow_blur>`                                 | ``1.0``               |
    +----------------------------------------+----------------------------------------------------------------------------------------+-----------------------+
    +----------------------------------------+----------------------------------------------------------------------------------------+-----------------------+
+   | :ref:`int<class_int>`                  | :ref:`shadow_caster_mask<class_Light3D_property_shadow_caster_mask>`                   | ``4294967295``        |
+   +----------------------------------------+----------------------------------------------------------------------------------------+-----------------------+
    | :ref:`bool<class_bool>`                | :ref:`shadow_enabled<class_Light3D_property_shadow_enabled>`                           | ``false``             |
    | :ref:`bool<class_bool>`                | :ref:`shadow_enabled<class_Light3D_property_shadow_enabled>`                           | ``false``             |
    +----------------------------------------+----------------------------------------------------------------------------------------+-----------------------+
    +----------------------------------------+----------------------------------------------------------------------------------------+-----------------------+
    | :ref:`float<class_float>`              | :ref:`shadow_normal_bias<class_Light3D_property_shadow_normal_bias>`                   | ``2.0``               |
    | :ref:`float<class_float>`              | :ref:`shadow_normal_bias<class_Light3D_property_shadow_normal_bias>`                   | ``2.0``               |
@@ -741,6 +743,23 @@ Blurs the edges of the shadow. Can be used to hide pixel artifacts in low-resolu
 
 
 ----
 ----
 
 
+.. _class_Light3D_property_shadow_caster_mask:
+
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **shadow_caster_mask** = ``4294967295`` :ref:`🔗<class_Light3D_property_shadow_caster_mask>`
+
+.. rst-class:: classref-property-setget
+
+- |void| **set_shadow_caster_mask**\ (\ value\: :ref:`int<class_int>`\ )
+- :ref:`int<class_int>` **get_shadow_caster_mask**\ (\ )
+
+The light will only cast shadows using objects in the selected layers.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_Light3D_property_shadow_enabled:
 .. _class_Light3D_property_shadow_enabled:
 
 
 .. rst-class:: classref-property
 .. rst-class:: classref-property

+ 3 - 1
classes/class_lineedit.rst

@@ -80,6 +80,8 @@ On macOS, some extra keyboard shortcuts are available:
 
 
 - :kbd:`Cmd + Right Arrow`: Same as :kbd:`End`, move the caret to the end of the line
 - :kbd:`Cmd + Right Arrow`: Same as :kbd:`End`, move the caret to the end of the line
 
 
+\ **Note:** Caret movement shortcuts listed above are not affected by :ref:`shortcut_keys_enabled<class_LineEdit_property_shortcut_keys_enabled>`.
+
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 
 Properties
 Properties
@@ -1094,7 +1096,7 @@ If ``false``, it's impossible to select the text using mouse nor keyboard.
 - |void| **set_shortcut_keys_enabled**\ (\ value\: :ref:`bool<class_bool>`\ )
 - |void| **set_shortcut_keys_enabled**\ (\ value\: :ref:`bool<class_bool>`\ )
 - :ref:`bool<class_bool>` **is_shortcut_keys_enabled**\ (\ )
 - :ref:`bool<class_bool>` **is_shortcut_keys_enabled**\ (\ )
 
 
-If ``false``, using shortcuts will be disabled.
+If ``true``, shortcut keys for context menu items are enabled, even if the context menu is disabled.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 

+ 1 - 1
classes/class_material.rst

@@ -217,7 +217,7 @@ Creates a placeholder version of this resource (:ref:`PlaceholderMaterial<class_
 
 
 |void| **inspect_native_shader_code**\ (\ ) :ref:`🔗<class_Material_method_inspect_native_shader_code>`
 |void| **inspect_native_shader_code**\ (\ ) :ref:`🔗<class_Material_method_inspect_native_shader_code>`
 
 
-Only available when running in the editor. Opens a popup that visualizes the generated shader code, including all variants and internal shader code.
+Only available when running in the editor. Opens a popup that visualizes the generated shader code, including all variants and internal shader code. See also :ref:`Shader.inspect_native_shader_code<class_Shader_method_inspect_native_shader_code>`.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 6 - 2
classes/class_node.rst

@@ -1267,7 +1267,7 @@ The node's processing behavior (see :ref:`ProcessMode<enum_Node_ProcessMode>`).
 - |void| **set_physics_process_priority**\ (\ value\: :ref:`int<class_int>`\ )
 - |void| **set_physics_process_priority**\ (\ value\: :ref:`int<class_int>`\ )
 - :ref:`int<class_int>` **get_physics_process_priority**\ (\ )
 - :ref:`int<class_int>` **get_physics_process_priority**\ (\ )
 
 
-Similar to :ref:`process_priority<class_Node_property_process_priority>` but for :ref:`NOTIFICATION_PHYSICS_PROCESS<class_Node_constant_NOTIFICATION_PHYSICS_PROCESS>`, :ref:`_physics_process<class_Node_private_method__physics_process>` or the internal version.
+Similar to :ref:`process_priority<class_Node_property_process_priority>` but for :ref:`NOTIFICATION_PHYSICS_PROCESS<class_Node_constant_NOTIFICATION_PHYSICS_PROCESS>`, :ref:`_physics_process<class_Node_private_method__physics_process>`, or :ref:`NOTIFICATION_INTERNAL_PHYSICS_PROCESS<class_Node_constant_NOTIFICATION_INTERNAL_PHYSICS_PROCESS>`.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1284,7 +1284,7 @@ Similar to :ref:`process_priority<class_Node_property_process_priority>` but for
 - |void| **set_process_priority**\ (\ value\: :ref:`int<class_int>`\ )
 - |void| **set_process_priority**\ (\ value\: :ref:`int<class_int>`\ )
 - :ref:`int<class_int>` **get_process_priority**\ (\ )
 - :ref:`int<class_int>` **get_process_priority**\ (\ )
 
 
-The node's execution order of the process callbacks (:ref:`_process<class_Node_private_method__process>`, :ref:`_physics_process<class_Node_private_method__physics_process>`, and internal processing). Nodes whose priority value is *lower* call their process callbacks first, regardless of tree order.
+The node's execution order of the process callbacks (:ref:`_process<class_Node_private_method__process>`, :ref:`NOTIFICATION_PROCESS<class_Node_constant_NOTIFICATION_PROCESS>`, and :ref:`NOTIFICATION_INTERNAL_PROCESS<class_Node_constant_NOTIFICATION_INTERNAL_PROCESS>`). Nodes whose priority value is *lower* call their process callbacks first, regardless of tree order.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1475,6 +1475,8 @@ Called during the physics processing step of the main loop. Physics processing m
 
 
 It is only called if physics processing is enabled, which is done automatically if this method is overridden, and can be toggled with :ref:`set_physics_process<class_Node_method_set_physics_process>`.
 It is only called if physics processing is enabled, which is done automatically if this method is overridden, and can be toggled with :ref:`set_physics_process<class_Node_method_set_physics_process>`.
 
 
+Processing happens in order of :ref:`process_physics_priority<class_Node_property_process_physics_priority>`, lower priority values are called first. Nodes with the same priority are processed in tree order, or top to bottom as seen in the editor (also known as pre-order traversal).
+
 Corresponds to the :ref:`NOTIFICATION_PHYSICS_PROCESS<class_Node_constant_NOTIFICATION_PHYSICS_PROCESS>` notification in :ref:`Object._notification<class_Object_private_method__notification>`.
 Corresponds to the :ref:`NOTIFICATION_PHYSICS_PROCESS<class_Node_constant_NOTIFICATION_PHYSICS_PROCESS>` notification in :ref:`Object._notification<class_Object_private_method__notification>`.
 
 
 \ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
 \ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
@@ -1493,6 +1495,8 @@ Called during the processing step of the main loop. Processing happens at every
 
 
 It is only called if processing is enabled, which is done automatically if this method is overridden, and can be toggled with :ref:`set_process<class_Node_method_set_process>`.
 It is only called if processing is enabled, which is done automatically if this method is overridden, and can be toggled with :ref:`set_process<class_Node_method_set_process>`.
 
 
+Processing happens in order of :ref:`process_priority<class_Node_property_process_priority>`, lower priority values are called first. Nodes with the same priority are processed in tree order, or top to bottom as seen in the editor (also known as pre-order traversal).
+
 Corresponds to the :ref:`NOTIFICATION_PROCESS<class_Node_constant_NOTIFICATION_PROCESS>` notification in :ref:`Object._notification<class_Object_private_method__notification>`.
 Corresponds to the :ref:`NOTIFICATION_PROCESS<class_Node_constant_NOTIFICATION_PROCESS>` notification in :ref:`Object._notification<class_Object_private_method__notification>`.
 
 
 \ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).
 \ **Note:** This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).

+ 39 - 8
classes/class_openxripbinding.rst

@@ -19,7 +19,7 @@ Defines a binding between an :ref:`OpenXRAction<class_OpenXRAction>` and an XR i
 Description
 Description
 -----------
 -----------
 
 
-This binding resource binds an :ref:`OpenXRAction<class_OpenXRAction>` to inputs or outputs. As most controllers have left hand and right versions that are handled by the same interaction profile we can specify multiple bindings. For instance an action "Fire" could be bound to both "/user/hand/left/input/trigger" and "/user/hand/right/input/trigger".
+This binding resource binds an :ref:`OpenXRAction<class_OpenXRAction>` to an input or output. As most controllers have left hand and right versions that are handled by the same interaction profile we can specify multiple bindings. For instance an action "Fire" could be bound to both "/user/hand/left/input/trigger" and "/user/hand/right/input/trigger". This would require two binding entries.
 
 
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 
@@ -29,11 +29,13 @@ Properties
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
-   +---------------------------------------------------+------------------------------------------------------+-------------------------+
-   | :ref:`OpenXRAction<class_OpenXRAction>`           | :ref:`action<class_OpenXRIPBinding_property_action>` |                         |
-   +---------------------------------------------------+------------------------------------------------------+-------------------------+
-   | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`paths<class_OpenXRIPBinding_property_paths>`   | ``PackedStringArray()`` |
-   +---------------------------------------------------+------------------------------------------------------+-------------------------+
+   +---------------------------------------------------+------------------------------------------------------------------+--------+
+   | :ref:`OpenXRAction<class_OpenXRAction>`           | :ref:`action<class_OpenXRIPBinding_property_action>`             |        |
+   +---------------------------------------------------+------------------------------------------------------------------+--------+
+   | :ref:`String<class_String>`                       | :ref:`binding_path<class_OpenXRIPBinding_property_binding_path>` | ``""`` |
+   +---------------------------------------------------+------------------------------------------------------------------+--------+
+   | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`paths<class_OpenXRIPBinding_property_paths>`               |        |
+   +---------------------------------------------------+------------------------------------------------------------------+--------+
 
 
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 
@@ -73,7 +75,26 @@ Property Descriptions
 - |void| **set_action**\ (\ value\: :ref:`OpenXRAction<class_OpenXRAction>`\ )
 - |void| **set_action**\ (\ value\: :ref:`OpenXRAction<class_OpenXRAction>`\ )
 - :ref:`OpenXRAction<class_OpenXRAction>` **get_action**\ (\ )
 - :ref:`OpenXRAction<class_OpenXRAction>` **get_action**\ (\ )
 
 
-:ref:`OpenXRAction<class_OpenXRAction>` that is bound to these paths.
+:ref:`OpenXRAction<class_OpenXRAction>` that is bound to :ref:`binding_path<class_OpenXRIPBinding_property_binding_path>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRIPBinding_property_binding_path:
+
+.. rst-class:: classref-property
+
+:ref:`String<class_String>` **binding_path** = ``""`` :ref:`🔗<class_OpenXRIPBinding_property_binding_path>`
+
+.. rst-class:: classref-property-setget
+
+- |void| **set_binding_path**\ (\ value\: :ref:`String<class_String>`\ )
+- :ref:`String<class_String>` **get_binding_path**\ (\ )
+
+Binding path that defines the input or output bound to :ref:`action<class_OpenXRIPBinding_property_action>`.
+
+\ **Note:** Binding paths are suggestions, an XR runtime may choose to bind the action to a different input or output emulating this input or output.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -83,13 +104,15 @@ Property Descriptions
 
 
 .. rst-class:: classref-property
 .. rst-class:: classref-property
 
 
-:ref:`PackedStringArray<class_PackedStringArray>` **paths** = ``PackedStringArray()`` :ref:`🔗<class_OpenXRIPBinding_property_paths>`
+:ref:`PackedStringArray<class_PackedStringArray>` **paths** :ref:`🔗<class_OpenXRIPBinding_property_paths>`
 
 
 .. rst-class:: classref-property-setget
 .. rst-class:: classref-property-setget
 
 
 - |void| **set_paths**\ (\ value\: :ref:`PackedStringArray<class_PackedStringArray>`\ )
 - |void| **set_paths**\ (\ value\: :ref:`PackedStringArray<class_PackedStringArray>`\ )
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_paths**\ (\ )
 - :ref:`PackedStringArray<class_PackedStringArray>` **get_paths**\ (\ )
 
 
+**Deprecated:** Use :ref:`binding_path<class_OpenXRIPBinding_property_binding_path>` instead.
+
 Paths that define the inputs or outputs bound on the device.
 Paths that define the inputs or outputs bound on the device.
 
 
 **Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedStringArray<class_PackedStringArray>` for more details.
 **Note:** The returned array is *copied* and any changes to it will not update the original property value. See :ref:`PackedStringArray<class_PackedStringArray>` for more details.
@@ -109,6 +132,8 @@ Method Descriptions
 
 
 |void| **add_path**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_OpenXRIPBinding_method_add_path>`
 |void| **add_path**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_OpenXRIPBinding_method_add_path>`
 
 
+**Deprecated:** Binding is for a single path.
+
 Add an input/output path to this binding.
 Add an input/output path to this binding.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
@@ -121,6 +146,8 @@ Add an input/output path to this binding.
 
 
 :ref:`int<class_int>` **get_path_count**\ (\ ) |const| :ref:`🔗<class_OpenXRIPBinding_method_get_path_count>`
 :ref:`int<class_int>` **get_path_count**\ (\ ) |const| :ref:`🔗<class_OpenXRIPBinding_method_get_path_count>`
 
 
+**Deprecated:** Binding is for a single path.
+
 Get the number of input/output paths in this binding.
 Get the number of input/output paths in this binding.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
@@ -133,6 +160,8 @@ Get the number of input/output paths in this binding.
 
 
 :ref:`bool<class_bool>` **has_path**\ (\ path\: :ref:`String<class_String>`\ ) |const| :ref:`🔗<class_OpenXRIPBinding_method_has_path>`
 :ref:`bool<class_bool>` **has_path**\ (\ path\: :ref:`String<class_String>`\ ) |const| :ref:`🔗<class_OpenXRIPBinding_method_has_path>`
 
 
+**Deprecated:** Binding is for a single path.
+
 Returns ``true`` if this input/output path is part of this binding.
 Returns ``true`` if this input/output path is part of this binding.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
@@ -145,6 +174,8 @@ Returns ``true`` if this input/output path is part of this binding.
 
 
 |void| **remove_path**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_OpenXRIPBinding_method_remove_path>`
 |void| **remove_path**\ (\ path\: :ref:`String<class_String>`\ ) :ref:`🔗<class_OpenXRIPBinding_method_remove_path>`
 
 
+**Deprecated:** Binding is for a single path.
+
 Removes this input/output path from this binding.
 Removes this input/output path from this binding.
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`

+ 20 - 0
classes/class_projectsettings.rst

@@ -32,6 +32,8 @@ When naming a Project Settings property, use the full path to the setting includ
 Tutorials
 Tutorials
 ---------
 ---------
 
 
+- :doc:`Project Settings <../tutorials/editor/project_settings>`
+
 - `3D Physics Tests Demo <https://godotengine.org/asset-library/asset/2747>`__
 - `3D Physics Tests Demo <https://godotengine.org/asset-library/asset/2747>`__
 
 
 - `3D Platformer Demo <https://godotengine.org/asset-library/asset/2748>`__
 - `3D Platformer Demo <https://godotengine.org/asset-library/asset/2748>`__
@@ -433,6 +435,8 @@ Properties
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                           | :ref:`display/window/size/resizable<class_ProjectSettings_property_display/window/size/resizable>`                                                                                                         | ``true``                                                                                         |
    | :ref:`bool<class_bool>`                           | :ref:`display/window/size/resizable<class_ProjectSettings_property_display/window/size/resizable>`                                                                                                         | ``true``                                                                                         |
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`                           | :ref:`display/window/size/sharp_corners<class_ProjectSettings_property_display/window/size/sharp_corners>`                                                                                                 | ``false``                                                                                        |
+   +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                           | :ref:`display/window/size/transparent<class_ProjectSettings_property_display/window/size/transparent>`                                                                                                     | ``false``                                                                                        |
    | :ref:`bool<class_bool>`                           | :ref:`display/window/size/transparent<class_ProjectSettings_property_display/window/size/transparent>`                                                                                                     | ``false``                                                                                        |
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                             | :ref:`display/window/size/viewport_height<class_ProjectSettings_property_display/window/size/viewport_height>`                                                                                             | ``648``                                                                                          |
    | :ref:`int<class_int>`                             | :ref:`display/window/size/viewport_height<class_ProjectSettings_property_display/window/size/viewport_height>`                                                                                             | ``648``                                                                                          |
@@ -2244,6 +2248,8 @@ Specifies the audio driver to use. This setting is platform-dependent as each pl
 
 
 The ``Dummy`` audio driver disables all audio playback and recording, which is useful for non-game applications as it reduces CPU usage. It also prevents the engine from appearing as an application playing audio in the OS' audio mixer.
 The ``Dummy`` audio driver disables all audio playback and recording, which is useful for non-game applications as it reduces CPU usage. It also prevents the engine from appearing as an application playing audio in the OS' audio mixer.
 
 
+To query the value that is being used at run-time (which may be overridden by command-line arguments or headless mode), use :ref:`AudioServer.get_driver_name<class_AudioServer_method_get_driver_name>`.
+
 \ **Note:** The driver in use can be overridden at runtime via the ``--audio-driver`` :doc:`command line argument <../tutorials/editor/command_line_tutorial>`.
 \ **Note:** The driver in use can be overridden at runtime via the ``--audio-driver`` :doc:`command line argument <../tutorials/editor/command_line_tutorial>`.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
@@ -4184,6 +4190,20 @@ If ``true``, allows the window to be resizable by default.
 
 
 ----
 ----
 
 
+.. _class_ProjectSettings_property_display/window/size/sharp_corners:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **display/window/size/sharp_corners** = ``false`` :ref:`🔗<class_ProjectSettings_property_display/window/size/sharp_corners>`
+
+If ``true``, the main window uses sharp corners by default.
+
+\ **Note:** This property is implemented only on Windows (11).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ProjectSettings_property_display/window/size/transparent:
 .. _class_ProjectSettings_property_display/window/size/transparent:
 
 
 .. rst-class:: classref-property
 .. rst-class:: classref-property

+ 14 - 0
classes/class_renderingserver.rst

@@ -545,6 +545,8 @@ Methods
    +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                                                                           | :ref:`light_set_shadow<class_RenderingServer_method_light_set_shadow>`\ (\ light\: :ref:`RID<class_RID>`, enabled\: :ref:`bool<class_bool>`\ )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
    | |void|                                                                           | :ref:`light_set_shadow<class_RenderingServer_method_light_set_shadow>`\ (\ light\: :ref:`RID<class_RID>`, enabled\: :ref:`bool<class_bool>`\ )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
    +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                                           | :ref:`light_set_shadow_caster_mask<class_RenderingServer_method_light_set_shadow_caster_mask>`\ (\ light\: :ref:`RID<class_RID>`, mask\: :ref:`int<class_int>`\ )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
+   +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`RID<class_RID>`                                                            | :ref:`lightmap_create<class_RenderingServer_method_lightmap_create>`\ (\ )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
    | :ref:`RID<class_RID>`                                                            | :ref:`lightmap_create<class_RenderingServer_method_lightmap_create>`\ (\ )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
    +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +----------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`PackedInt32Array<class_PackedInt32Array>`                                  | :ref:`lightmap_get_probe_capture_bsp_tree<class_RenderingServer_method_lightmap_get_probe_capture_bsp_tree>`\ (\ lightmap\: :ref:`RID<class_RID>`\ ) |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
    | :ref:`PackedInt32Array<class_PackedInt32Array>`                                  | :ref:`lightmap_get_probe_capture_bsp_tree<class_RenderingServer_method_lightmap_get_probe_capture_bsp_tree>`\ (\ lightmap\: :ref:`RID<class_RID>`\ ) |const|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
@@ -9036,6 +9038,18 @@ If ``true``, light will cast shadows. Equivalent to :ref:`Light3D.shadow_enabled
 
 
 ----
 ----
 
 
+.. _class_RenderingServer_method_light_set_shadow_caster_mask:
+
+.. rst-class:: classref-method
+
+|void| **light_set_shadow_caster_mask**\ (\ light\: :ref:`RID<class_RID>`, mask\: :ref:`int<class_int>`\ ) :ref:`🔗<class_RenderingServer_method_light_set_shadow_caster_mask>`
+
+Sets the shadow caster mask for this 3D light. Shadows will only be cast using objects in the selected layers. Equivalent to :ref:`Light3D.shadow_caster_mask<class_Light3D_property_shadow_caster_mask>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_RenderingServer_method_lightmap_create:
 .. _class_RenderingServer_method_lightmap_create:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method

+ 67 - 9
classes/class_resourceimporterobj.rst

@@ -38,15 +38,23 @@ Properties
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
-   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
-   | :ref:`bool<class_bool>`       | :ref:`force_disable_mesh_compression<class_ResourceImporterOBJ_property_force_disable_mesh_compression>` | ``false``            |
-   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
-   | :ref:`bool<class_bool>`       | :ref:`generate_tangents<class_ResourceImporterOBJ_property_generate_tangents>`                           | ``true``             |
-   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
-   | :ref:`Vector3<class_Vector3>` | :ref:`offset_mesh<class_ResourceImporterOBJ_property_offset_mesh>`                                       | ``Vector3(0, 0, 0)`` |
-   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
-   | :ref:`Vector3<class_Vector3>` | :ref:`scale_mesh<class_ResourceImporterOBJ_property_scale_mesh>`                                         | ``Vector3(1, 1, 1)`` |
-   +-------------------------------+----------------------------------------------------------------------------------------------------------+----------------------+
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`bool<class_bool>`       | :ref:`force_disable_mesh_compression<class_ResourceImporterOBJ_property_force_disable_mesh_compression>`     | ``false``            |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`bool<class_bool>`       | :ref:`generate_lightmap_uv2<class_ResourceImporterOBJ_property_generate_lightmap_uv2>`                       | ``false``            |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`float<class_float>`     | :ref:`generate_lightmap_uv2_texel_size<class_ResourceImporterOBJ_property_generate_lightmap_uv2_texel_size>` | ``0.2``              |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`bool<class_bool>`       | :ref:`generate_lods<class_ResourceImporterOBJ_property_generate_lods>`                                       | ``true``             |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`bool<class_bool>`       | :ref:`generate_shadow_mesh<class_ResourceImporterOBJ_property_generate_shadow_mesh>`                         | ``true``             |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`bool<class_bool>`       | :ref:`generate_tangents<class_ResourceImporterOBJ_property_generate_tangents>`                               | ``true``             |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`offset_mesh<class_ResourceImporterOBJ_property_offset_mesh>`                                           | ``Vector3(0, 0, 0)`` |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------+----------------------+
+   | :ref:`Vector3<class_Vector3>` | :ref:`scale_mesh<class_ResourceImporterOBJ_property_scale_mesh>`                                             | ``Vector3(1, 1, 1)`` |
+   +-------------------------------+--------------------------------------------------------------------------------------------------------------+----------------------+
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -69,6 +77,56 @@ If ``true``, mesh compression will not be used. Consider enabling if you notice
 
 
 ----
 ----
 
 
+.. _class_ResourceImporterOBJ_property_generate_lightmap_uv2:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **generate_lightmap_uv2** = ``false`` :ref:`🔗<class_ResourceImporterOBJ_property_generate_lightmap_uv2>`
+
+If ``true``, generates UV2 on import for :ref:`LightmapGI<class_LightmapGI>` baking.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_ResourceImporterOBJ_property_generate_lightmap_uv2_texel_size:
+
+.. rst-class:: classref-property
+
+:ref:`float<class_float>` **generate_lightmap_uv2_texel_size** = ``0.2`` :ref:`🔗<class_ResourceImporterOBJ_property_generate_lightmap_uv2_texel_size>`
+
+Controls the size of each texel on the baked lightmap. A smaller value results in more precise lightmaps, at the cost of larger lightmap sizes and longer bake times.
+
+\ **Note:** Only effective if :ref:`generate_lightmap_uv2<class_ResourceImporterOBJ_property_generate_lightmap_uv2>` is ``true``.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_ResourceImporterOBJ_property_generate_lods:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **generate_lods** = ``true`` :ref:`🔗<class_ResourceImporterOBJ_property_generate_lods>`
+
+If ``true``, generates lower detail variants of the mesh which will be displayed in the distance to improve rendering performance. Not all meshes benefit from LOD, especially if they are never rendered from far away. Disabling this can reduce output file size and speed up importing. See `Mesh level of detail (LOD) <../tutorials/3d/mesh_lod.html#doc-mesh-lod>`__ for more information.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_ResourceImporterOBJ_property_generate_shadow_mesh:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **generate_shadow_mesh** = ``true`` :ref:`🔗<class_ResourceImporterOBJ_property_generate_shadow_mesh>`
+
+If ``true``, enables the generation of shadow meshes on import. This optimizes shadow rendering without reducing quality by welding vertices together when possible. This in turn reduces the memory bandwidth required to render shadows. Shadow mesh generation currently doesn't support using a lower detail level than the source mesh (but shadow rendering will make use of LODs when relevant).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ResourceImporterOBJ_property_generate_tangents:
 .. _class_ResourceImporterOBJ_property_generate_tangents:
 
 
 .. rst-class:: classref-property
 .. rst-class:: classref-property

+ 14 - 0
classes/class_shader.rst

@@ -59,6 +59,8 @@ Methods
    +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Array<class_Array>`     | :ref:`get_shader_uniform_list<class_Shader_method_get_shader_uniform_list>`\ (\ get_groups\: :ref:`bool<class_bool>` = false\ )                                                                                       |
    | :ref:`Array<class_Array>`     | :ref:`get_shader_uniform_list<class_Shader_method_get_shader_uniform_list>`\ (\ get_groups\: :ref:`bool<class_bool>` = false\ )                                                                                       |
    +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                        | :ref:`inspect_native_shader_code<class_Shader_method_inspect_native_shader_code>`\ (\ )                                                                                                                               |
+   +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                        | :ref:`set_default_texture_parameter<class_Shader_method_set_default_texture_parameter>`\ (\ name\: :ref:`StringName<class_StringName>`, texture\: :ref:`Texture<class_Texture>`, index\: :ref:`int<class_int>` = 0\ ) |
    | |void|                        | :ref:`set_default_texture_parameter<class_Shader_method_set_default_texture_parameter>`\ (\ name\: :ref:`StringName<class_StringName>`, texture\: :ref:`Texture<class_Texture>`, index\: :ref:`int<class_int>` = 0\ ) |
    +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
@@ -190,6 +192,18 @@ If argument ``get_groups`` is true, parameter grouping hints will be provided.
 
 
 ----
 ----
 
 
+.. _class_Shader_method_inspect_native_shader_code:
+
+.. rst-class:: classref-method
+
+|void| **inspect_native_shader_code**\ (\ ) :ref:`🔗<class_Shader_method_inspect_native_shader_code>`
+
+Only available when running in the editor. Opens a popup that visualizes the generated shader code, including all variants and internal shader code. See also :ref:`Material.inspect_native_shader_code<class_Material_method_inspect_native_shader_code>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_Shader_method_set_default_texture_parameter:
 .. _class_Shader_method_set_default_texture_parameter:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method

+ 2 - 0
classes/class_string.rst

@@ -21,6 +21,8 @@ This is the built-in string Variant type (and the one used by GDScript). Strings
 
 
 Some string methods have corresponding variations. Variations suffixed with ``n`` (:ref:`countn<class_String_method_countn>`, :ref:`findn<class_String_method_findn>`, :ref:`replacen<class_String_method_replacen>`, etc.) are **case-insensitive** (they make no distinction between uppercase and lowercase letters). Method variations prefixed with ``r`` (:ref:`rfind<class_String_method_rfind>`, :ref:`rsplit<class_String_method_rsplit>`, etc.) are reversed, and start from the end of the string, instead of the beginning.
 Some string methods have corresponding variations. Variations suffixed with ``n`` (:ref:`countn<class_String_method_countn>`, :ref:`findn<class_String_method_findn>`, :ref:`replacen<class_String_method_replacen>`, etc.) are **case-insensitive** (they make no distinction between uppercase and lowercase letters). Method variations prefixed with ``r`` (:ref:`rfind<class_String_method_rfind>`, :ref:`rsplit<class_String_method_rsplit>`, etc.) are reversed, and start from the end of the string, instead of the beginning.
 
 
+To convert any Variant to or from a string, see :ref:`@GlobalScope.str<class_@GlobalScope_method_str>`, :ref:`@GlobalScope.str_to_var<class_@GlobalScope_method_str_to_var>`, and :ref:`@GlobalScope.var_to_str<class_@GlobalScope_method_var_to_str>`.
+
 \ **Note:** In a boolean context, a string will evaluate to ``false`` if it is empty (``""``). Otherwise, a string will always evaluate to ``true``.
 \ **Note:** In a boolean context, a string will evaluate to ``false`` if it is empty (``""``). Otherwise, a string will always evaluate to ``true``.
 
 
 .. note::
 .. note::

+ 2 - 2
classes/class_transform2d.rst

@@ -181,7 +181,7 @@ The identity **Transform2D**. A transform with no translation, no rotation, and
 
 
 - The :ref:`x<class_Transform2D_property_x>` points right (:ref:`Vector2.RIGHT<class_Vector2_constant_RIGHT>`);
 - The :ref:`x<class_Transform2D_property_x>` points right (:ref:`Vector2.RIGHT<class_Vector2_constant_RIGHT>`);
 
 
-- The :ref:`y<class_Transform2D_property_y>` points up (:ref:`Vector2.UP<class_Vector2_constant_UP>`).
+- The :ref:`y<class_Transform2D_property_y>` points down (:ref:`Vector2.DOWN<class_Vector2_constant_DOWN>`).
 
 
 ::
 ::
 
 
@@ -259,7 +259,7 @@ On the identity transform, this vector points right (:ref:`Vector2.RIGHT<class_V
 
 
 The transform basis's Y axis, and the column ``1`` of the matrix. Combined with :ref:`x<class_Transform2D_property_x>`, this represents the transform's rotation, scale, and skew.
 The transform basis's Y axis, and the column ``1`` of the matrix. Combined with :ref:`x<class_Transform2D_property_x>`, this represents the transform's rotation, scale, and skew.
 
 
-On the identity transform, this vector points up (:ref:`Vector2.UP<class_Vector2_constant_UP>`).
+On the identity transform, this vector points down (:ref:`Vector2.DOWN<class_Vector2_constant_DOWN>`).
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 

+ 70 - 0
classes/class_tree.rst

@@ -197,6 +197,10 @@ Theme Properties
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    | :ref:`Color<class_Color>`         | :ref:`font_disabled_color<class_Tree_theme_color_font_disabled_color>`                   | ``Color(0.875, 0.875, 0.875, 0.5)`` |
    | :ref:`Color<class_Color>`         | :ref:`font_disabled_color<class_Tree_theme_color_font_disabled_color>`                   | ``Color(0.875, 0.875, 0.875, 0.5)`` |
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
+   | :ref:`Color<class_Color>`         | :ref:`font_hovered_color<class_Tree_theme_color_font_hovered_color>`                     | ``Color(0.95, 0.95, 0.95, 1)``      |
+   +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
+   | :ref:`Color<class_Color>`         | :ref:`font_hovered_dimmed_color<class_Tree_theme_color_font_hovered_dimmed_color>`       | ``Color(0.875, 0.875, 0.875, 1)``   |
+   +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    | :ref:`Color<class_Color>`         | :ref:`font_outline_color<class_Tree_theme_color_font_outline_color>`                     | ``Color(0, 0, 0, 1)``               |
    | :ref:`Color<class_Color>`         | :ref:`font_outline_color<class_Tree_theme_color_font_outline_color>`                     | ``Color(0, 0, 0, 1)``               |
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    | :ref:`Color<class_Color>`         | :ref:`font_selected_color<class_Tree_theme_color_font_selected_color>`                   | ``Color(1, 1, 1, 1)``               |
    | :ref:`Color<class_Color>`         | :ref:`font_selected_color<class_Tree_theme_color_font_selected_color>`                   | ``Color(1, 1, 1, 1)``               |
@@ -287,6 +291,8 @@ Theme Properties
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    | :ref:`Texture2D<class_Texture2D>` | :ref:`updown<class_Tree_theme_icon_updown>`                                              |                                     |
    | :ref:`Texture2D<class_Texture2D>` | :ref:`updown<class_Tree_theme_icon_updown>`                                              |                                     |
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
+   | :ref:`StyleBox<class_StyleBox>`   | :ref:`button_hover<class_Tree_theme_style_button_hover>`                                 |                                     |
+   +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`button_pressed<class_Tree_theme_style_button_pressed>`                             |                                     |
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`button_pressed<class_Tree_theme_style_button_pressed>`                             |                                     |
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`cursor<class_Tree_theme_style_cursor>`                                             |                                     |
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`cursor<class_Tree_theme_style_cursor>`                                             |                                     |
@@ -301,6 +307,10 @@ Theme Properties
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`focus<class_Tree_theme_style_focus>`                                               |                                     |
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`focus<class_Tree_theme_style_focus>`                                               |                                     |
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
+   | :ref:`StyleBox<class_StyleBox>`   | :ref:`hovered<class_Tree_theme_style_hovered>`                                           |                                     |
+   +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
+   | :ref:`StyleBox<class_StyleBox>`   | :ref:`hovered_dimmed<class_Tree_theme_style_hovered_dimmed>`                             |                                     |
+   +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`panel<class_Tree_theme_style_panel>`                                               |                                     |
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`panel<class_Tree_theme_style_panel>`                                               |                                     |
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    +-----------------------------------+------------------------------------------------------------------------------------------+-------------------------------------+
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`selected<class_Tree_theme_style_selected>`                                         |                                     |
    | :ref:`StyleBox<class_StyleBox>`   | :ref:`selected<class_Tree_theme_style_selected>`                                         |                                     |
@@ -1364,6 +1374,30 @@ Text :ref:`Color<class_Color>` for a :ref:`TreeItem.CELL_MODE_CHECK<class_TreeIt
 
 
 ----
 ----
 
 
+.. _class_Tree_theme_color_font_hovered_color:
+
+.. rst-class:: classref-themeproperty
+
+:ref:`Color<class_Color>` **font_hovered_color** = ``Color(0.95, 0.95, 0.95, 1)`` :ref:`🔗<class_Tree_theme_color_font_hovered_color>`
+
+Text :ref:`Color<class_Color>` used when the item is hovered.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_Tree_theme_color_font_hovered_dimmed_color:
+
+.. rst-class:: classref-themeproperty
+
+:ref:`Color<class_Color>` **font_hovered_dimmed_color** = ``Color(0.875, 0.875, 0.875, 1)`` :ref:`🔗<class_Tree_theme_color_font_hovered_dimmed_color>`
+
+Text :ref:`Color<class_Color>` used when the item is hovered, while a button of the same item is hovered as the same time.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_Tree_theme_color_font_outline_color:
 .. _class_Tree_theme_color_font_outline_color:
 
 
 .. rst-class:: classref-themeproperty
 .. rst-class:: classref-themeproperty
@@ -1906,6 +1940,18 @@ The updown arrow icon to display for the :ref:`TreeItem.CELL_MODE_RANGE<class_Tr
 
 
 ----
 ----
 
 
+.. _class_Tree_theme_style_button_hover:
+
+.. rst-class:: classref-themeproperty
+
+:ref:`StyleBox<class_StyleBox>` **button_hover** :ref:`🔗<class_Tree_theme_style_button_hover>`
+
+:ref:`StyleBox<class_StyleBox>` used when a button in the tree is hovered.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_Tree_theme_style_button_pressed:
 .. _class_Tree_theme_style_button_pressed:
 
 
 .. rst-class:: classref-themeproperty
 .. rst-class:: classref-themeproperty
@@ -1990,6 +2036,30 @@ The focused style for the **Tree**, drawn on top of everything.
 
 
 ----
 ----
 
 
+.. _class_Tree_theme_style_hovered:
+
+.. rst-class:: classref-themeproperty
+
+:ref:`StyleBox<class_StyleBox>` **hovered** :ref:`🔗<class_Tree_theme_style_hovered>`
+
+:ref:`StyleBox<class_StyleBox>` for the item being hovered.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_Tree_theme_style_hovered_dimmed:
+
+.. rst-class:: classref-themeproperty
+
+:ref:`StyleBox<class_StyleBox>` **hovered_dimmed** :ref:`🔗<class_Tree_theme_style_hovered_dimmed>`
+
+:ref:`StyleBox<class_StyleBox>` for the item being hovered, while a button of the same item is hovered as the same time.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_Tree_theme_style_panel:
 .. _class_Tree_theme_style_panel:
 
 
 .. rst-class:: classref-themeproperty
 .. rst-class:: classref-themeproperty

+ 64 - 3
classes/class_window.rst

@@ -76,6 +76,8 @@ Properties
    +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
    +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
    | :ref:`Vector2i<class_Vector2i>`                                 | :ref:`position<class_Window_property_position>`                                   | ``Vector2i(0, 0)``       |
    | :ref:`Vector2i<class_Vector2i>`                                 | :ref:`position<class_Window_property_position>`                                   | ``Vector2i(0, 0)``       |
    +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
    +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
+   | :ref:`bool<class_bool>`                                         | :ref:`sharp_corners<class_Window_property_sharp_corners>`                         | ``false``                |
+   +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
    | :ref:`Vector2i<class_Vector2i>`                                 | :ref:`size<class_Window_property_size>`                                           | ``Vector2i(100, 100)``   |
    | :ref:`Vector2i<class_Vector2i>`                                 | :ref:`size<class_Window_property_size>`                                           | ``Vector2i(100, 100)``   |
    +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
    +-----------------------------------------------------------------+-----------------------------------------------------------------------------------+--------------------------+
    | :ref:`Theme<class_Theme>`                                       | :ref:`theme<class_Window_property_theme>`                                         |                          |
    | :ref:`Theme<class_Theme>`                                       | :ref:`theme<class_Window_property_theme>`                                         |                          |
@@ -623,11 +625,23 @@ All mouse events are passed to the underlying window of the same application.
 
 
 \ **Note:** This flag has no effect in embedded windows.
 \ **Note:** This flag has no effect in embedded windows.
 
 
+.. _class_Window_constant_FLAG_SHARP_CORNERS:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`Flags<enum_Window_Flags>` **FLAG_SHARP_CORNERS** = ``8``
+
+Window style is overridden, forcing sharp corners.
+
+\ **Note:** This flag has no effect in embedded windows.
+
+\ **Note:** This flag is implemented only on Windows (11).
+
 .. _class_Window_constant_FLAG_MAX:
 .. _class_Window_constant_FLAG_MAX:
 
 
 .. rst-class:: classref-enumeration-constant
 .. rst-class:: classref-enumeration-constant
 
 
-:ref:`Flags<enum_Window_Flags>` **FLAG_MAX** = ``8``
+:ref:`Flags<enum_Window_Flags>` **FLAG_MAX** = ``9``
 
 
 Max value of the :ref:`Flags<enum_Window_Flags>`.
 Max value of the :ref:`Flags<enum_Window_Flags>`.
 
 
@@ -759,11 +773,11 @@ enum **LayoutDirection**: :ref:`🔗<enum_Window_LayoutDirection>`
 
 
 Automatic layout direction, determined from the parent window layout direction.
 Automatic layout direction, determined from the parent window layout direction.
 
 
-.. _class_Window_constant_LAYOUT_DIRECTION_LOCALE:
+.. _class_Window_constant_LAYOUT_DIRECTION_APPLICATION_LOCALE:
 
 
 .. rst-class:: classref-enumeration-constant
 .. rst-class:: classref-enumeration-constant
 
 
-:ref:`LayoutDirection<enum_Window_LayoutDirection>` **LAYOUT_DIRECTION_LOCALE** = ``1``
+:ref:`LayoutDirection<enum_Window_LayoutDirection>` **LAYOUT_DIRECTION_APPLICATION_LOCALE** = ``1``
 
 
 Automatic layout direction, determined from the current locale.
 Automatic layout direction, determined from the current locale.
 
 
@@ -783,6 +797,32 @@ Left-to-right layout direction.
 
 
 Right-to-left layout direction.
 Right-to-left layout direction.
 
 
+.. _class_Window_constant_LAYOUT_DIRECTION_SYSTEM_LOCALE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LayoutDirection<enum_Window_LayoutDirection>` **LAYOUT_DIRECTION_SYSTEM_LOCALE** = ``4``
+
+Automatic layout direction, determined from the system locale.
+
+.. _class_Window_constant_LAYOUT_DIRECTION_MAX:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LayoutDirection<enum_Window_LayoutDirection>` **LAYOUT_DIRECTION_MAX** = ``5``
+
+Represents the size of the :ref:`LayoutDirection<enum_Window_LayoutDirection>` enum.
+
+.. _class_Window_constant_LAYOUT_DIRECTION_LOCALE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`LayoutDirection<enum_Window_LayoutDirection>` **LAYOUT_DIRECTION_LOCALE** = ``1``
+
+**Deprecated:** Use :ref:`LAYOUT_DIRECTION_APPLICATION_LOCALE<class_Window_constant_LAYOUT_DIRECTION_APPLICATION_LOCALE>` instead.
+
+
+
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
 ----
 ----
@@ -1301,6 +1341,27 @@ If :ref:`ProjectSettings.display/window/subwindows/embed_subwindows<class_Projec
 
 
 ----
 ----
 
 
+.. _class_Window_property_sharp_corners:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **sharp_corners** = ``false`` :ref:`🔗<class_Window_property_sharp_corners>`
+
+.. rst-class:: classref-property-setget
+
+- |void| **set_flag**\ (\ flag\: :ref:`Flags<enum_Window_Flags>`, enabled\: :ref:`bool<class_bool>`\ )
+- :ref:`bool<class_bool>` **get_flag**\ (\ flag\: :ref:`Flags<enum_Window_Flags>`\ ) |const|
+
+If ``true``, the **Window** will override the OS window style to display sharp corners.
+
+\ **Note:** This property is implemented only on Windows (11).
+
+\ **Note:** This property only works with native windows.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_Window_property_size:
 .. _class_Window_property_size:
 
 
 .. rst-class:: classref-property
 .. rst-class:: classref-property