Age | Commit message (Collapse) | Author |
|
Make sure we know when deleting an emitting object
|
|
We used a lock signals in the signal_map while emitting, because it was
not allowed to disconnect them while being emitted.
We used that lock to check if we where deleting an object during signal
emission.
Now that we allow to disconnect signals while they are being emitted, if
an object first disconnects, then gets deleted we can't know that a
signal was being emitted during the destructor.
This commit adds a new `_emitting` boolean member to Object to be set
while emitting and checked in the destructor, while removing the old
signal lock which is now unused.
|
|
|
|
|
|
Fix MultiplayerAPI crash when peer implementation misbehave.
|
|
Also fix WebSocketMultiplayer::get_available_packet_count() return value
when peer is not configured to use the multiplayer API.
|
|
Fixes #33106
|
|
Fixes leak when calling PCKPacker::pck_start multiple times
|
|
|
|
|
|
Used to allocate in stack (via alloca) which causes crashes when trying
to encode big variables.
The buffer grows as needed up to `encode_buffer_max_size` (which is
8MiB by default) and always in power of 2.
|
|
Exposed physics frame count and idle frame count
|
|
As advised by @reduz.
|
|
|
|
According to https://github.com/godotengine/godot/commit/22637beb2ed625c3e43ab75ab5865b57d7470948#commitcomment-36651823
and as confirmed by @reduz, this seems not to be necessary now that we
copy-on-write.
This triggered freeze scenarios in cases where a node would be deleted
while being used as a target in a signal emission.
Fixes #34650.
Fixes #34769.
Now those two errors go back to reporting:
```
ERROR: emit_signal: Condition ' !target ' is true. Continuing..:
At: core/object.cpp:1191.
```
|
|
This reverts commit 9600fd5dde1f85b7dd2dd8558d52ff86b18651e7.
Add comment warning about possible implications of using this option.
Fixes #35038.
|
|
directory.
|
|
Enable Vsync via Compositor by default
|
|
This feature was added in #33414 but it was disabled by default.
Now that it got some testing, it's probably safe to enable it
by default.
|
|
Avoids crashes on debug mode. Instead it now breaks the execution and
show the error in-editor. Will still crash on release.
Also add a similar check to Marshalls to ensure the debugger doesn't
crash when trying to serialize the invalid instance.
|
|
|
|
ClassDB: Exclude method binds starting with '_' from API hash
|
|
These methods are not meant to be part of the scripting API.
These are not the same as virtual methods starting with '_', e.g.: '_process'.
|
|
PCK: Set VERSION_PATCH in header, factor out header magic
|
|
Fixes crash when using Resource::_take_over_path
|
|
Unify pack file version and magic to avoid hardcoded literals.
`version.py` now always includes `patch` even for the first release in
a new stable branch (e.g. 3.2). The public name stays without the patch
number, but `Engine.get_version_info()` already included `patch == 0`,
and we can remove some extra handling of undefined `VERSION_PATCH` this
way.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
|
|
Add an `OS.is_window_focused()` getter
|
|
MultiplayerAPI: Fix disconnect errors when passing invalid peer
|
|
Fallback to RGBA4444 for textures with alpha set to ETC compression
|
|
Fixed antialiasing option for Polygon2D with concave/hollow shapes
|
|
Fixes #34634.
|
|
Expose is_class_ptr to GDNative for dynamic casts
|
|
|
|
|
|
Make sure no additional slash being added with localize_path
|
|
Don't use constant reference in Vector push_back, insert and append_array
|
|
Allows to doc vararg method return type as void
|
|
It will now give information about the originating object instance
and when locked, the target callback.
This should help debugging editor and game issues that are now being
reported due to adding signal locking in
22637beb2ed625c3e43ab75ab5865b57d7470948.
|
|
|
|
Some cases were not handled properly for Polygon2D after making changes in common code to fix Line2D antialiasing. Added an option for drawing polygons to differentiate the two use cases.
Fixes #34568
|
|
Happy new year to the wonderful Godot community!
We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.
Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
|
|
Print a warning message if `OS.exit_code` is set to a non-portable value
|
|
This also improves the related documentation.
|
|
The ord() function was recently added in GDScript and VisualScript,
but was missed in the Expression class.
|
|
|
|
The calculation used to be wrong when exactly at a power of 2.
`nearest_shift` always return the "next" power of 2
`nearest_shift(4) == 3 # 2^3 = 8`.
On the other hand `next_power_of_2` returns the exact value if that
value is a power of 2 (i.e. `next_power_of_2(4) == 4`).
I.e. :
```
WARN_PRINT(itos(next_power_of_2(4)) + " " + itos(1 << nearest_shift(4)));
// WARNING: ... : 4 8
```
Is this by design?
|
|
|
|
|
|
Fix build warning in ustring.cpp on Windows/MSVC platform
|
|
Closes #34443.
|