Age | Commit message (Collapse) | Author |
|
Fix Variant to Vector<Variant> conversion operator
|
|
Fix InputEventKey::echo property type from INT to BOOL
|
|
Force mipmaps off when importing RGBA4444 textures
|
|
|
|
|
|
|
|
Removed ResourceInteractiveLoader, add built-in threaded loading.
|
|
|
|
|
|
Remove now unnecessary bindings of signal callbacks in the public API.
There might be some false positives that need rebinding if they were
meant to be public.
No regular expressions were harmed in the making of this commit.
(Nah, just kidding.)
|
|
|
|
Reimplement `Mutex` with C++'s `<mutex>` (plus more)
|
|
Remove friend reference to non-existing class RefBase
|
|
This work has been kindly sponsored by IMVU.
|
|
Commit
7ad14e7a3e6f87ddc450f7e34621eb5200808451
removed RefBase class - but still there is hanging reference in....Reference :) class (no pun intended)
|
|
Main:
- It's now implemented thanks to `<mutex>`. No more platform-specific implementations.
- `BinaryMutex` (non-recursive) is added, as an alternative for special cases.
- Doesn't need allocation/deallocation anymore. It can live in the stack and be part of other classes.
- Because of that, it's methods are now `const` and the inner mutex is `mutable` so it can be easily used in `const` contexts.
- A no-op implementation is provided if `NO_THREADS` is defined. No more need to add `#ifdef NO_THREADS` just for this.
- `MutexLock` now takes a reference. At this point the cases of null `Mutex`es are rare. If you ever need that, just don't use `MutexLock`.
- Thread-safe utilities are therefore simpler now.
Misc.:
- `ScopedMutexLock` is dropped and replaced by `MutexLock`, because they were pretty much the same.
- Every case of lock, do-something, unlock is replaced by `MutexLock` (complex cases where it's not straightfoward are kept as as explicit lock and unlock).
- `ShaderRD` contained an `std::mutex`, which has been replaced by `Mutex`.
|
|
|
|
Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.
|
|
Expression: Fix parsing integers as 32-bit
|
|
Fixed crash when connecting a signal in GDScript
|
|
|
|
- Renames PackedIntArray to PackedInt32Array.
- Renames PackedFloatArray to PackedFloat32Array.
- Adds PackedInt64Array and PackedFloat64Array.
- Renames Variant::REAL to Variant::FLOAT for consistency.
Packed arrays are for storing large amount of data and creating stuff like
meshes, buffers. textures, etc. Forcing them to be 64 is a huge waste of
memory. That said, many users requested the ability to have 64 bits packed
arrays for their games, so this is just an optional added type.
For Variant, the float datatype is always 64 bits, and exposed as `float`.
We still have `real_t` which is the datatype that can change from 32 to 64
bits depending on a compile flag (not entirely working right now, but that's
the idea). It affects math related datatypes and code only.
Neither Variant nor PackedArray make use of real_t, which is only intended
for math precision, so the term is removed from there to keep only float.
|
|
Fixes #36438
|
|
|
|
Was missed in #36393 because no `callable_mp()` calls were actually
compiled with `tools=no` in that PR.
Also work around GCC warning that also affects the
`call_with_variant_args_ret_helper` variant.
|
|
Arrays inside of Variant are unique and use reference counting.
When you assign a variant containing a packed array to another, or
when you call non const functions to arrays, this will work even
if the array is inside a dictionary, so they will from now pass
as reference.
The difference with regular variant arrays is that, once passed
to a function in the C++ API, they are no longer shared. This is
required for security and thread safety, as those arrays are
mainly used to pass data back and forth even between threads.
|
|
|
|
Replace FALLTHROUGH macro by C++17 [[fallthrough]]
|
|
This attribute is now part of the standard we target so we no longer
need compiler-specific hacks.
Also enables -Wimplicit-fallthrough for Clang now that we can properly
support it. It's already on by default for GCC's -Wextra.
Fixes new warnings raised by Clang's -Wimplicit-fallthrough.
|
|
WARNING: Requires C++17 'guaranteed copy elision' to fix ambiguous
operator problems in Variant.
This was added for this commit (and future C++17 uses) in #36457.
|
|
|
|
Added StringName as a variant type.
|
|
Also changed all relevant properties defined manually to StringName.
|
|
|
|
|
|
objects and made them default.
|
|
Update
|
|
Fix Ref(Variant) constructor to properly check the object type
|
|
Otherwise it was saving any reference as valid, regardless of type.
|
|
This reverts commit 8312ead0d99cfc308f2f7635bae3da6bf0ff5489.
|
|
DTLS support + optional ENet encryption
|
|
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
|
|
Custom instance implementation via the mbedtls module.
|
|
This is a temporary hack until vnen and reduz can work on a proper fix.
The changes in 867d073b98344b848c96012418912a7e72841a31 exposed a
GDScript issue, which apparently triggers an automatic unreferencing.
This hack only makes it possible to use the editor again, but GDScript
is still broken.
|
|
UDP sockets can be "connected" to filter packets from a specific source.
In case of a bound socket (e.g. server), a new socket can be created on
the same address/port that will receive all packets that are not
filtered by a more specific socket (e.g. the previously connect socket).
This way, a UDPServer can listen to new packets, and return a new
PacketPeerUDP when receiving one, knowing that is a "new client".
|
|
|
|
|
|
It was initially implemented in #5871 for Godot 3.0, but never really
completed or thoroughly tested for most platforms. It then stayed in
limbo and nobody seems really keen to finish it, so it's better to
remove it in 4.0, and re-add eventually (possibly with a different API)
if there's demand and an implementation confirmed working on all
platforms.
Closes #8770.
|
|
|
|
Fixes some memory leaks
|