- Use `NOTIFICATION_ENTER`/`EXIT_WORLD` for `Area` (intead of `*_TREE`).
- Now both bodies' and areas' constraints are cleaned up.
- And now also that happens as soon as the space is set to null (i.e., when exiting the tree) instead of only at freeing time.
- When clearing constraints, the loop goes on to the next if the current is already released, instead of breaking.
- When one has been already released, no error is shown from now on, as it's something expected, since a pair (our kind of constraint of interest) can be freed by any of its involved collision objects and the other will try again.
- Implement index shifting (or marking as -1) for shapes indices in collision pairs shapes are removed.
- Standarize behavior of bodies and areas so that anything that invalidates a given pair gives the same result (collision mask, actual collision, etc); for instance, triggering area enter/exit signals.
- Add missing member initializations.
- Extend the new-space-equals-area/body-current-space test to every case.
- Fix 3D ray-casts early accepting Areas (skipping the mask check).
- Fix unpairing of large elements (2D's `BroadPhase2DHashGrid`).
Some of these prevent random crashes caused by constraints with dangling pointers to involved objects.
Fixes#8856.
Fixes#7589.
Fixes#6676.
And maybe others.
When Importing an stl file into Godot from the import mesh menu, the
editor hangs indefinitely. Since only Obj files are supported, the data
remains unparsed and hence the editor enters an infinte loop.
This commit fixes this issue by exiting the loop when godot has finished
parsing the file, irrespective of whether any meaningful data was
extracted out.
Fixes: #9200
Also, add some uninitialized variables into constructors (I like to applease cppcheck).
Also, remove unused md_count.
Fixes#3662.
(cherry picked from commit c89d9720f0)
Breaks the SSL communication with some servers,
do the same that the other curl, wget, firefox & co clients do.
Fixes#9146
(cherry picked from commit 5cabe5f0fc)
Failing to get the cursor theme should not cause any issues since we're then using the default one anyway.
So I removed the warning and made it a verbose-only print instead, as people tend to mistake it for a real error..
(pretty much like `iCCP: known incorrect sRGB profile` :P)
(cherry picked from commit d6333066fc)
This avoids namespace collisions with things such as X509_NAME.
Also force include of necessary definitions in `crypto/o_str.c`
which seem missing on MSVC (but work on MinGW).
(cherry picked from commit c1b0662b40)
Our necessary custom changes will be reapplied in later commits for clarity,
and saved as patches for future updates.
(cherry picked from commit cb0f771aaa)
This one allows for complex shaders paired with a simple lighting shader to skip code that would otherwise be pointlessly (and wastefully) run during the light pass.
You can use `if (AT_LIGHT_PASS) , negated or not, and that will be converted to a preprocessed #if when the shader is compiled.
Depending on your game (number of items and lights), this can be a *significant* performance gain, or at least avoids relying on the driver's optimizing abilities.
- Refactor touch acceptance logic so the same is used whether passby is enabled or not.
- Remove the check for visibility during input handling as it should never fail; instead using now an ERR_FAIL_COND() just in case since we have been checking for that so far.
Fixes#9159.
Sometimes the tile info label is too long so that the right dock will be pushed off the view if runs Godot in a small screen. It’ll no longer be a problem if this tile info is hide.