The pair user data wasn't correctly updated in the BVH from the check
pair callback.
This could lead to crashes when the check caused logical unpairing in
physics, then actual unpairing from the broadphase occured and the
physics server tried to delete an already deleted pointer.
The BVH implementation is not checking collision layers on existing
pairs on move like other physics broadphases do.
This is solved by adding a new call to trigger pair callbacks again so
the physics engine can check layers again (specific to the BVH version,
other broadphase implementations just trigger a move like before).
Add new error type to BakeError to signalise that there is no root node to
start baking from.
Document the new error type, as well as BAKE_ERROR_NO_LIGHTMAPPER.
This reduces the size of the editor binaries significantly, as we otherwise
embed all WIP translations, including ones with very low completion ratios,
and end up paying for the size of all `msgid`s for each locale.
Cf. https://github.com/godotengine/godot-proposals/issues/3421 for details.
The thresholds used are:
- 30% for the editor interface (should already include most common strings
while more obscure ones like UndoRedo action names might be untranslated).
- 10% for the class reference: this is a HUGE resource and 10% is already
a lot of useful content, especially if focused on the most used APIs.
For 3.x, we also exclude languages that require complex text layout support
to be displayed properly.
This currently reduces the size of the editor binary by 17% on Linux.
The list will be synced manually every now and then.
Default is "Auto", but can be forced to a specific WebGL version if the
automatic detection fails.
The game and editor canvas are now replaced with a new one in the exit
hooks. This helps the browser do some context cleanup, and allow us to
create a new context of a different type (WebGL/WebGL2).
Enable GLES3/WebGL2 in the Web Editor.
Immediate meshes do not have geometry of type Surface so we check
to see the mesh isn't immediate before trying to cast to surface
to check for octahedral compression
It triggers a crash when playing V9 videos.
Could likely be fixed if anyone wants to work on it, but so far nobody seems to
want to and WebM support is dropped in 4.0, so this workaround should help for
now.
Fixes#50862.
Fixesgodotengine/godot-proposals#2051.
Relates to godotengine/godot-proposals#1215.
Implements shortucts for adjusting the camera rotation in 15-degree
increments, similar to Blender.
I did not add corresponding menu entries for these, as I didn't feel
like they would be too useful from a menu, and didn't want to make the
menu too long.
(cherry picked from commit cb15ec20bb)
Previously, files added via `add_ios_project_static_libs` where
being added as embedded frameworks. This commit fixes that.
Static frameworks/libs should never be embedded into IPAs.
Whenever we change the name (or remove) generated cpp files with the `.gen.cpp`
extension, users run into build issues when switching between branches (i.e.
switching before and after the name change/removal). This is because we glob
`*.cpp` so if a now-obsolete file from a previous build is present, we'll
include it too, potentially leading to bugs or compilation failure (due to
missing headers or invalid code).
So globbing patterns in `add_source_files` will now skip files ending with
`.gen.cpp`, which should instead be passed explicitly where they're used.
(cherry picked from commit c133480531)