This fixes multiple issues/inconsistencies around `get_compiler_version()`:
* With no shell allocated, launching the compiler could fail even
with proper paths being set.
* The return value was described as "an array of version numbers as ints",
but the function actually returned a `Dictionary` (or `None`).
* Not all calls were properly handling a `None` return value in case of errors.
On Windows this broke compiling for me since #81869 with default settings.
* Some calls defined inconsistent defaults/fallbacks (`0` or `-1`).
(cherry picked from commit 426e18fd37)
For FORMAT_XXXH half-precision format constants, the description uses GL_XXX32F, which is incorrect.
This fixes it to GL_XXX16F to align with the intended precision.
(cherry picked from commit 4a2de1e17a)
TAA + MSAA would make Godot request unnecessary flags for an MSAA
velocity texture. flags that were not even actually needed.
This was causing:
1. Unsupported GPUs to fail completely (e.g. Intel Arc 770)
2. Wrong codepaths to be followed (causing validation errors, possibly
crashes or glitches)
3. Unnecessary performance impact in all GPUs.
See
https://github.com/godotengine/godot/issues/71929#issuecomment-1722274359
(cherry picked from commit 4de0ed4adf)
When a hardware keyboard is connected, all key events come through so we can route them directly to the engine.
This is not the case for soft keyboards, for which the current logic was designed as it requires extra processing.
(cherry picked from commit 87102e358d)
PCK files (like other build products) should be deterministic based on their inputs. Removed calls to Math::rand() that are being used to generate padding.
Looks like these were introduced as part of adding encryption support, but the padding being random does not have any cryptographic significance. This can be trivially inferred since file blocks that happen to be aligned don't get padding anyway.
If there's a desire to indroduce something that functions as a nonce it should probably be added explicitly and only if encryption is enabled.
remove Math::rand() calls in editor_export_platform.cpp
follow up to make consistent with pck_packer
(cherry picked from commit 067807c1cb)
- There's no implicit conversion from `double` to `int`, a cast was missing.
- The example about literals in GDScript also applies to C# (with the same syntax even).
(cherry picked from commit 0897a795c3)
This prevents the estimation from being extremely high (close to 100,000 FPS)
until enough time has passed to display an accurate estimation.
(cherry picked from commit 15b31f0891)
Improve MeshDataTool.get_face_vertex() method description and also add an example code.
Co-authored-by: Raul Santos <raulsntos@gmail.com>
(cherry picked from commit adb0d0ea58)
Code now always double quotes the filename to use as command line
argument when calling explorer.exe. In particular, commas in a filename
would be interpreted by explorer.exe as separators for commands.
Similarly a trim_suffix for "file://" is assumed to be a mistake, this
could potentially be a PREfix that we want to strip, but never a suffix.
Since it didn't seem needed in the end, we removed it.
(cherry picked from commit 5608b1d411)
This commit fixes#78140
When the scene was re-imported with non-default values of some settings, re-importing it again using default values for those settings didn't have the effect.
The problem was that when handling the reimport, a wrong dictionary of the settings was used.
(cherry picked from commit 8b729e5b7e)
Saving a subscene causes the main scene to be re-instantiated. And the resource
instance in the main scene will be reused when the main scene is re-instantiated.
So for resources with `resource_local_to_scene` enabled, resetting state may be
necessary (at least for `ViewportTexture`).
(cherry picked from commit 4795c3cdfa)