Merge pull request #10706 from godotengine/classref/sync-394508d

classref: Sync with current master branch (394508d)
This commit is contained in:
Max Hilbrunner
2025-02-22 13:09:02 +01:00
committed by GitHub
2 changed files with 111 additions and 64 deletions

View File

@@ -21,9 +21,7 @@ Description
**EditorTranslationParserPlugin** is invoked when a file is being parsed to extract strings that require translation. To define the parsing and string extraction logic, override the :ref:`_parse_file()<class_EditorTranslationParserPlugin_private_method__parse_file>` method in script.
Add the extracted strings to argument ``msgids`` or ``msgids_context_plural`` if context or plural is used.
When adding to ``msgids_context_plural``, you must add the data using the format ``["A", "B", "C"]``, where ``A`` represents the extracted string, ``B`` represents the context, and ``C`` represents the plural version of the extracted string. If you want to add only context but not plural, put ``""`` for the plural slot. The idea is the same if you only want to add plural but not context. See the code below for concrete examples.
The return value should be an :ref:`Array<class_Array>` of :ref:`PackedStringArray<class_PackedStringArray>`\ s, one for each extracted translatable string. Each entry should contain ``[msgid, msgctxt, msgid_plural, comment]``, where all except ``msgid`` are optional. Empty strings will be ignored.
The extracted strings will be written into a POT file selected by user under "POT Generation" in "Localization" tab in "Project Settings" menu.
@@ -37,14 +35,17 @@ Below shows an example of a custom parser that extracts strings from a CSV file
@tool
extends EditorTranslationParserPlugin
func _parse_file(path, msgids, msgids_context_plural):
func _parse_file(path):
var ret: Array[PackedStringArray] = []
var file = FileAccess.open(path, FileAccess.READ)
var text = file.get_as_text()
var split_strs = text.split(",", false)
for s in split_strs:
msgids.append(s)
msgids.append(PackedStringArray([s]))
#print("Extracted string: " + s)
return ret
func _get_recognized_extensions():
return ["csv"]
@@ -55,16 +56,18 @@ Below shows an example of a custom parser that extracts strings from a CSV file
[Tool]
public partial class CustomParser : EditorTranslationParserPlugin
{
public override void _ParseFile(string path, Godot.Collections.Array<string> msgids, Godot.Collections.Array<Godot.Collections.Array> msgidsContextPlural)
public override Godot.Collections.Array<string[]> _ParseFile(string path)
{
Godot.Collections.Array<string[]> ret;
using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read);
string text = file.GetAsText();
string[] splitStrs = text.Split(",", allowEmpty: false);
foreach (string s in splitStrs)
{
msgids.Add(s);
ret.Add([s]);
//GD.Print($"Extracted string: {s}");
}
return ret;
}
public override string[] _GetRecognizedExtensions()
@@ -75,28 +78,28 @@ Below shows an example of a custom parser that extracts strings from a CSV file
To add a translatable string associated with context or plural, add it to ``msgids_context_plural``:
To add a translatable string associated with a context, plural, or comment:
.. tabs::
.. code-tab:: gdscript
# This will add a message with msgid "Test 1", msgctxt "context", and msgid_plural "test 1 plurals".
msgids_context_plural.append(["Test 1", "context", "test 1 plurals"])
# This will add a message with msgid "Test 1", msgctxt "context", msgid_plural "test 1 plurals", and comment "test 1 comment".
ret.append(PackedStringArray(["Test 1", "context", "test 1 plurals", "test 1 comment"]))
# This will add a message with msgid "A test without context" and msgid_plural "plurals".
msgids_context_plural.append(["A test without context", "", "plurals"])
ret.append(PackedStringArray(["A test without context", "", "plurals"]))
# This will add a message with msgid "Only with context" and msgctxt "a friendly context".
msgids_context_plural.append(["Only with context", "a friendly context", ""])
ret.append(PackedStringArray(["Only with context", "a friendly context"]))
.. code-tab:: csharp
// This will add a message with msgid "Test 1", msgctxt "context", and msgid_plural "test 1 plurals".
msgidsContextPlural.Add(["Test 1", "context", "test 1 Plurals"]);
// This will add a message with msgid "Test 1", msgctxt "context", msgid_plural "test 1 plurals", and comment "test 1 comment".
ret.Add(["Test 1", "context", "test 1 plurals", "test 1 comment"]);
// This will add a message with msgid "A test without context" and msgid_plural "plurals".
msgidsContextPlural.Add(["A test without context", "", "plurals"]);
ret.Add(["A test without context", "", "plurals"]);
// This will add a message with msgid "Only with context" and msgctxt "a friendly context".
msgidsContextPlural.Add(["Only with context", "a friendly context", ""]);
ret.Add(["Only with context", "a friendly context"]);
@@ -107,7 +110,7 @@ To add a translatable string associated with context or plural, add it to ``msgi
.. code-tab:: gdscript
func _parse_file(path, msgids, msgids_context_plural):
func _parse_file(path):
var res = ResourceLoader.load(path, "Script")
var text = res.source_code
# Parsing logic.
@@ -117,7 +120,7 @@ To add a translatable string associated with context or plural, add it to ``msgi
.. code-tab:: csharp
public override void _ParseFile(string path, Godot.Collections.Array<string> msgids, Godot.Collections.Array<Godot.Collections.Array> msgidsContextPlural)
public override Godot.Collections.Array<string[]> _ParseFile(string path)
{
var res = ResourceLoader.Load<Script>(path, "Script");
string text = res.SourceCode;
@@ -141,13 +144,11 @@ Methods
.. table::
:widths: auto
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_get_comments<class_EditorTranslationParserPlugin_private_method__get_comments>`\ (\ msgids_comment\: :ref:`Array<class_Array>`\[:ref:`String<class_String>`\], msgids_context_plural_comment\: :ref:`Array<class_Array>`\[:ref:`String<class_String>`\]\ ) |virtual| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`_get_recognized_extensions<class_EditorTranslationParserPlugin_private_method__get_recognized_extensions>`\ (\ ) |virtual| |const| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_parse_file<class_EditorTranslationParserPlugin_private_method__parse_file>`\ (\ path\: :ref:`String<class_String>`, msgids\: :ref:`Array<class_Array>`\[:ref:`String<class_String>`\], msgids_context_plural\: :ref:`Array<class_Array>`\[:ref:`Array<class_Array>`\]\ ) |virtual| |
+---------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`_get_recognized_extensions<class_EditorTranslationParserPlugin_private_method__get_recognized_extensions>`\ (\ ) |virtual| |const| |
+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Array<class_Array>`\[:ref:`PackedStringArray<class_PackedStringArray>`\] | :ref:`_parse_file<class_EditorTranslationParserPlugin_private_method__parse_file>`\ (\ path\: :ref:`String<class_String>`\ ) |virtual| |
+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
@@ -158,18 +159,6 @@ Methods
Method Descriptions
-------------------
.. _class_EditorTranslationParserPlugin_private_method__get_comments:
.. rst-class:: classref-method
|void| **_get_comments**\ (\ msgids_comment\: :ref:`Array<class_Array>`\[:ref:`String<class_String>`\], msgids_context_plural_comment\: :ref:`Array<class_Array>`\[:ref:`String<class_String>`\]\ ) |virtual| :ref:`🔗<class_EditorTranslationParserPlugin_private_method__get_comments>`
If overridden, called after :ref:`_parse_file()<class_EditorTranslationParserPlugin_private_method__parse_file>` to get comments for the parsed entries. This method should fill the arrays with the same number of elements and in the same order as :ref:`_parse_file()<class_EditorTranslationParserPlugin_private_method__parse_file>`.
.. rst-class:: classref-item-separator
----
.. _class_EditorTranslationParserPlugin_private_method__get_recognized_extensions:
.. rst-class:: classref-method
@@ -186,7 +175,7 @@ Gets the list of file extensions to associate with this parser, e.g. ``["csv"]``
.. rst-class:: classref-method
|void| **_parse_file**\ (\ path\: :ref:`String<class_String>`, msgids\: :ref:`Array<class_Array>`\[:ref:`String<class_String>`\], msgids_context_plural\: :ref:`Array<class_Array>`\[:ref:`Array<class_Array>`\]\ ) |virtual| :ref:`🔗<class_EditorTranslationParserPlugin_private_method__parse_file>`
:ref:`Array<class_Array>`\[:ref:`PackedStringArray<class_PackedStringArray>`\] **_parse_file**\ (\ path\: :ref:`String<class_String>`\ ) |virtual| :ref:`🔗<class_EditorTranslationParserPlugin_private_method__parse_file>`
Override this method to define a custom parsing logic to extract the translatable strings.

View File

@@ -1453,19 +1453,19 @@ Properties
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`rendering/environment/volumetric_fog/volume_size<class_ProjectSettings_property_rendering/environment/volumetric_fog/volume_size>` | ``64`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver<class_ProjectSettings_property_rendering/gl_compatibility/driver>` | |
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver<class_ProjectSettings_property_rendering/gl_compatibility/driver>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.android<class_ProjectSettings_property_rendering/gl_compatibility/driver.android>` | |
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.android<class_ProjectSettings_property_rendering/gl_compatibility/driver.android>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.ios<class_ProjectSettings_property_rendering/gl_compatibility/driver.ios>` | |
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.ios<class_ProjectSettings_property_rendering/gl_compatibility/driver.ios>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.linuxbsd<class_ProjectSettings_property_rendering/gl_compatibility/driver.linuxbsd>` | |
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.linuxbsd<class_ProjectSettings_property_rendering/gl_compatibility/driver.linuxbsd>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.macos<class_ProjectSettings_property_rendering/gl_compatibility/driver.macos>` | |
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.macos<class_ProjectSettings_property_rendering/gl_compatibility/driver.macos>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.web<class_ProjectSettings_property_rendering/gl_compatibility/driver.web>` | |
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.web<class_ProjectSettings_property_rendering/gl_compatibility/driver.web>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.windows<class_ProjectSettings_property_rendering/gl_compatibility/driver.windows>` | |
| :ref:`String<class_String>` | :ref:`rendering/gl_compatibility/driver.windows<class_ProjectSettings_property_rendering/gl_compatibility/driver.windows>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`rendering/gl_compatibility/fallback_to_angle<class_ProjectSettings_property_rendering/gl_compatibility/fallback_to_angle>` | ``true`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
@@ -1611,17 +1611,17 @@ Properties
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`rendering/rendering_device/d3d12/max_sampler_descriptors_per_frame<class_ProjectSettings_property_rendering/rendering_device/d3d12/max_sampler_descriptors_per_frame>` | ``1024`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver<class_ProjectSettings_property_rendering/rendering_device/driver>` | |
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver<class_ProjectSettings_property_rendering/rendering_device/driver>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver.android<class_ProjectSettings_property_rendering/rendering_device/driver.android>` | |
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver.android<class_ProjectSettings_property_rendering/rendering_device/driver.android>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver.ios<class_ProjectSettings_property_rendering/rendering_device/driver.ios>` | |
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver.ios<class_ProjectSettings_property_rendering/rendering_device/driver.ios>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver.linuxbsd<class_ProjectSettings_property_rendering/rendering_device/driver.linuxbsd>` | |
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver.linuxbsd<class_ProjectSettings_property_rendering/rendering_device/driver.linuxbsd>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver.macos<class_ProjectSettings_property_rendering/rendering_device/driver.macos>` | |
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver.macos<class_ProjectSettings_property_rendering/rendering_device/driver.macos>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver.windows<class_ProjectSettings_property_rendering/rendering_device/driver.windows>` | |
| :ref:`String<class_String>` | :ref:`rendering/rendering_device/driver.windows<class_ProjectSettings_property_rendering/rendering_device/driver.windows>` | ``"auto"`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`rendering/rendering_device/fallback_to_d3d12<class_ProjectSettings_property_rendering/rendering_device/fallback_to_d3d12>` | ``true`` |
+---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
@@ -9344,6 +9344,8 @@ If ``true``, enable TLSv1.3 negotiation.
\ **Note:** This is experimental, and may cause connections to fail in some cases (notably, if the remote server uses TLS handshake fragmentation).
\ **Note:** Only supported when using Mbed TLS 3.0 or later (Linux distribution packages may be compiled against older system Mbed TLS packages), otherwise the maximum supported TLS version is always TLSv1.2.
.. rst-class:: classref-item-separator
----
@@ -10950,10 +10952,22 @@ Base size used to determine size of froxel buffer in the camera X-axis and Y-axi
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/gl_compatibility/driver** :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver>`
:ref:`String<class_String>` **rendering/gl_compatibility/driver** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver>`
Sets the driver to be used by the renderer when using the Compatibility renderer. This property can not be edited directly, instead, set the driver using the platform-specific overrides.
Supported values are:
- ``auto``, currently defaults to ``opengl3`` on all platforms.
- ``opengl3``, OpenGL 3.3 on desktop platforms, OpenGL ES 3.0 on mobile platforms, WebGL 2.0 on web.
- ``opengl3_angle``, OpenGL ES 3.0 over ANGLE compatibility layer, supported on macOS (over native OpenGL) and Windows (over Direct3D 11).
- ``opengl3_es``, OpenGL ES 3.0 on Linux/BSD.
\ **Note:** The availability of these options depends on whether the engine was compiled with support for them (determined by SCons options ``opengl3`` and ``angle_libs``).
.. rst-class:: classref-item-separator
----
@@ -10962,10 +10976,12 @@ Sets the driver to be used by the renderer when using the Compatibility renderer
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/gl_compatibility/driver.android** :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.android>`
:ref:`String<class_String>` **rendering/gl_compatibility/driver.android** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.android>`
Android override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettings_property_rendering/gl_compatibility/driver>`.
The ``auto`` setting is equivalent to ``opengl3`` on this platform.
.. rst-class:: classref-item-separator
----
@@ -10974,10 +10990,12 @@ Android override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettin
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/gl_compatibility/driver.ios** :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.ios>`
:ref:`String<class_String>` **rendering/gl_compatibility/driver.ios** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.ios>`
iOS override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettings_property_rendering/gl_compatibility/driver>`.
The ``auto`` setting is equivalent to ``opengl3`` on this platform.
.. rst-class:: classref-item-separator
----
@@ -10986,10 +11004,12 @@ iOS override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettings_p
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/gl_compatibility/driver.linuxbsd** :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.linuxbsd>`
:ref:`String<class_String>` **rendering/gl_compatibility/driver.linuxbsd** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.linuxbsd>`
LinuxBSD override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettings_property_rendering/gl_compatibility/driver>`.
The ``auto`` setting is equivalent to ``opengl3`` on this platform. ``opengl3_es`` is available as an option, which is also used as a fallback on devices that don't support OpenGL 3.3.
.. rst-class:: classref-item-separator
----
@@ -10998,10 +11018,12 @@ LinuxBSD override for :ref:`rendering/gl_compatibility/driver<class_ProjectSetti
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/gl_compatibility/driver.macos** :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.macos>`
:ref:`String<class_String>` **rendering/gl_compatibility/driver.macos** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.macos>`
macOS override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettings_property_rendering/gl_compatibility/driver>`.
The ``auto`` setting is equivalent to ``opengl3`` on this platform. ``opengl3_angle`` is available as an option if ANGLE support was compiled in.
.. rst-class:: classref-item-separator
----
@@ -11010,10 +11032,12 @@ macOS override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettings
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/gl_compatibility/driver.web** :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.web>`
:ref:`String<class_String>` **rendering/gl_compatibility/driver.web** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.web>`
Web override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettings_property_rendering/gl_compatibility/driver>`.
The ``auto`` setting is equivalent to ``opengl3`` on this platform.
.. rst-class:: classref-item-separator
----
@@ -11022,10 +11046,12 @@ Web override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettings_p
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/gl_compatibility/driver.windows** :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.windows>`
:ref:`String<class_String>` **rendering/gl_compatibility/driver.windows** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/gl_compatibility/driver.windows>`
Windows override for :ref:`rendering/gl_compatibility/driver<class_ProjectSettings_property_rendering/gl_compatibility/driver>`.
The ``auto`` setting is equivalent to ``opengl3`` on this platform. ``opengl3_angle`` is available as an option if ANGLE supported was compiled in. In such case, ANGLE is used preferentially on lower end devices with known problematic native OpenGL drivers (see :ref:`rendering/gl_compatibility/force_angle_on_devices<class_ProjectSettings_property_rendering/gl_compatibility/force_angle_on_devices>`).
.. rst-class:: classref-item-separator
----
@@ -11998,10 +12024,22 @@ Depending on the complexity of scenes, this value may be lowered or may need to
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/rendering_device/driver** :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver>`
:ref:`String<class_String>` **rendering/rendering_device/driver** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver>`
Sets the driver to be used by the renderer when using a RenderingDevice-based renderer like the Forward+ or Mobile renderers. This property can't be edited directly. Instead, set the driver using the platform-specific overrides. This can be overridden using the ``--rendering-driver <driver>`` command line argument.
Supported values are:
- ``auto``, Metal on Apple Silicon Macs and iOS, Vulkan on other built-in platforms. On Windows, Direct3D 12 is the default if the engine was compiled without Vulkan support.
- ``metal``, Metal (supported on Apple Silicon Macs and iOS).
- ``vulkan``, Vulkan (supported on all desktop and mobile platforms).
- ``d3d12``, Direct3D 12 (supported on Windows).
\ **Note:** The availability of these options depends on whether the engine was compiled with support for them (determined by SCons options ``vulkan``, ``metal``, and ``d3d12``).
\ **Note:** The actual rendering driver may be automatically changed by the engine as a result of a fallback, or a user-specified command line argument. To get the actual rendering driver that is used at runtime, use :ref:`RenderingServer.get_current_rendering_driver_name()<class_RenderingServer_method_get_current_rendering_driver_name>` instead of reading this project setting's value.
.. rst-class:: classref-item-separator
@@ -12012,10 +12050,14 @@ Sets the driver to be used by the renderer when using a RenderingDevice-based re
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/rendering_device/driver.android** :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver.android>`
:ref:`String<class_String>` **rendering/rendering_device/driver.android** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver.android>`
Android override for :ref:`rendering/rendering_device/driver<class_ProjectSettings_property_rendering/rendering_device/driver>`.
The ``auto`` setting is equivalent to ``vulkan`` on this platform.
\ **Note:** If Vulkan was disabled at compile time, there is no alternative RenderingDevice driver.
.. rst-class:: classref-item-separator
----
@@ -12024,10 +12066,14 @@ Android override for :ref:`rendering/rendering_device/driver<class_ProjectSettin
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/rendering_device/driver.ios** :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver.ios>`
:ref:`String<class_String>` **rendering/rendering_device/driver.ios** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver.ios>`
iOS override for :ref:`rendering/rendering_device/driver<class_ProjectSettings_property_rendering/rendering_device/driver>`.
The ``auto`` setting is equivalent to ``metal`` on this platform.
\ **Note:** If Metal was disabled at compile time, the default becomes ``vulkan``. If both Metal and Vulkan were disabled at compile time, there is no alternative RenderingDevice driver.
.. rst-class:: classref-item-separator
----
@@ -12036,10 +12082,14 @@ iOS override for :ref:`rendering/rendering_device/driver<class_ProjectSettings_p
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/rendering_device/driver.linuxbsd** :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver.linuxbsd>`
:ref:`String<class_String>` **rendering/rendering_device/driver.linuxbsd** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver.linuxbsd>`
LinuxBSD override for :ref:`rendering/rendering_device/driver<class_ProjectSettings_property_rendering/rendering_device/driver>`.
The ``auto`` setting is equivalent to ``vulkan`` on this platform.
\ **Note:** If Vulkan was disabled at compile time, there is no alternative RenderingDevice driver.
.. rst-class:: classref-item-separator
----
@@ -12048,10 +12098,14 @@ LinuxBSD override for :ref:`rendering/rendering_device/driver<class_ProjectSetti
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/rendering_device/driver.macos** :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver.macos>`
:ref:`String<class_String>` **rendering/rendering_device/driver.macos** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver.macos>`
macOS override for :ref:`rendering/rendering_device/driver<class_ProjectSettings_property_rendering/rendering_device/driver>`.
The ``auto`` setting is equivalent to ``metal`` on Apple Silicon Macs, and ``vulkan`` (MoltenVK) on Intel Macs. Metal isn't supported on Intel Macs, so even if setting ``metal`` explicitly, it will fallback to Vulkan on Intel Macs.
\ **Note:** If Metal was disabled at compile time, the default becomes ``vulkan`` for both Apple Silicon and Intel Macs. If both Metal and Vulkan were disabled at compile time, there is no alternative RenderingDevice driver.
.. rst-class:: classref-item-separator
----
@@ -12060,10 +12114,14 @@ macOS override for :ref:`rendering/rendering_device/driver<class_ProjectSettings
.. rst-class:: classref-property
:ref:`String<class_String>` **rendering/rendering_device/driver.windows** :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver.windows>`
:ref:`String<class_String>` **rendering/rendering_device/driver.windows** = ``"auto"`` :ref:`🔗<class_ProjectSettings_property_rendering/rendering_device/driver.windows>`
Windows override for :ref:`rendering/rendering_device/driver<class_ProjectSettings_property_rendering/rendering_device/driver>`.
The ``auto`` setting is equivalent to ``vulkan`` on this platform.
\ **Note:** If Vulkan was disabled at compile time, the default becomes ``d3d12``. If both Vulkan and Direct3D 12 were disabled at compile time, there is no alternative RenderingDevice driver.
.. rst-class:: classref-item-separator
----