Age | Commit message (Collapse) | Author |
|
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.)
|
|
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`.
|
|
- 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.
|
|
objects and made them default.
|
|
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are
sugar for `Vector<Type>`.
|
|
|
|
|
|
|
|
|
|
Fixes #29777.
Co-authored-by: Cameron Reikes <cameronreikes@gmail.com>
|
|
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.
|
|
|
|
Fixes uninitialized variable caused by PR #32921
|
|
Particles were processed only on the next frame after the emission started, causing a one frame delay in rendering. Now the first process cycle is started during the same frame, which makes them consistent with Particles & Particles2D.
Fixes #32890
|
|
Added some obvious errors explanations
|
|
|
|
|
|
Changed some code reported by LGTM and Coverity
|
|
|
|
|
|
The current implementation normalizes points from a uniform distribution
on a cube. This creates a non-uniform distribution on the sphere.
|
|
Add a Direction property to ParticlesMaterial
|
|
Update emitting status on one-shot particles
|
|
|
|
|
|
Properly set emitting when particles restart
|
|
|
|
|
|
Right now it would take garbage values when loading scenes,
which could end up written to the scene file.
|
|
Fix CPU particles bug with local_coords and transform
|
|
|
|
The relevant code was copied from (GPU) ParticlesMaterial but commented
out initially, and never ported.
Closes #29580.
|
|
CPUParticles: Do randomness ratio computations in phase instead of time
|
|
The original shader code uses a phase (ratio from 0 to 1 for the particle
lifetime) for the randomness ratio computations, and this code was ported
over but converted to time computations.
The seeding/cycle logic was thus invalid, so we're going back to phase
for these computations, thus fixing the previous non-working time/emission
randomness property.
Part of #29692. Follow-up to #26859.
|
|
The tangential acceleration for both CPUParticles2D and CPUParticles had been
badly converted from their GPU counterpart (ParticlesMaterial).
This fixes it and ensures that both GPU and CPU particles behave the same with
regard to tangential acceleration.
|
|
|
|
Fixes #28252
|
|
Also removed non-active CPUParticles(3d) from render list
Fixes #27066
|
|
|
|
|
|
|
|
|
|
Happy new year to the wonderful Godot community!
|
|
Fixes typo in source string sent to translation.
|
|
Fix "scale" property collision in CPUParticles
|
|
|
|
no mesh has ~~not~~ been assigned
|
|
Fix errors 2, 3, 4, 6, 8, 9, 11, 12, 13, 14, and 15.
|
|
Fixes #22795
|
|
|