summaryrefslogtreecommitdiff
path: root/scene/3d/cpu_particles.cpp
AgeCommit message (Collapse)Author
2020-02-28Signals: Port connect calls to use callable_mpRémi Verschelde
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.)
2020-02-26Reimplement Mutex with C++'s <mutex>Pedro J. Estébanez
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`.
2020-02-25Variant: Added 64-bit packed arrays, renamed Variant::REAL to FLOAT.Juan Linietsky
- 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.
2020-02-20Reworked signal connection system, added support for Callable and Signal ↵Juan Linietsky
objects and made them default.
2020-02-18PoolVector is gone, replaced by VectorJuan Linietsky
Typed `PoolTypeArray` types are now renamed `PackedTypeArray` and are sugar for `Vector<Type>`.
2020-02-11Fixed 2D and 3D CPU ParticlesJuan Linietsky
2020-02-11More GIProbe work and fixesJuan Linietsky
2020-02-11Modernized default 3D material, fixes material bugs.Juan Linietsky
2020-02-11Several fixes to 3D rendering, and multimesh implementation.Juan Linietsky
2020-01-16Validate input in (CPU)Particles set_emission_shape()Rémi Verschelde
Fixes #29777. Co-authored-by: Cameron Reikes <cameronreikes@gmail.com>
2020-01-01Update copyright statements to 2020Rémi Verschelde
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.
2019-10-29Fixed disconnecting not connected signalMikolaj Kaczmarek
2019-10-24Fixed emitting not initialized correctly in cpu particles 2d/3dPouleyKetchoupp
Fixes uninitialized variable caused by PR #32921
2019-10-20Fixed delay when CPUParticles & CPUParticles2D start being emittedPouleyKetchoupp
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
2019-09-25Merge pull request #32051 from qarmin/some_error_explanationRémi Verschelde
Added some obvious errors explanations
2019-09-25Added some obvious errors explanationsqarmin
2019-09-24fix particles scale randomizationclayjohn
2019-07-20Merge pull request #30576 from qarmin/lgtm_coverageRémi Verschelde
Changed some code reported by LGTM and Coverity
2019-07-20Changed some code showed in LGTM and Coverageqarmin
2019-07-14added individual particle random lifetimeclayjohn
2019-07-06cpu_particles: Return uniform density spheres.Simon Puchert
The current implementation normalizes points from a uniform distribution on a cube. This creates a non-uniform distribution on the sphere.
2019-07-02Merge pull request #26613 from KoBeWi/direction_of_particlesRémi Verschelde
Add a Direction property to ParticlesMaterial
2019-06-27Merge pull request #29937 from clayjohn/particles-one-shot-bugRémi Verschelde
Update emitting status on one-shot particles
2019-06-26Add a Direction property to ParticlesMaterialTomasz Chabora
2019-06-25update emitting status on one-shot particlesclayjohn
2019-06-24Merge pull request #29974 from clayjohn/particles_restartRémi Verschelde
Properly set emitting when particles restart
2019-06-21properly set emitting when particles restartclayjohn
2019-06-21CPUParticles: Set linear velocity to 0, like GPU ParticlesRémi Verschelde
2019-06-21Particles: Properly initialize angular velocity parameterRémi Verschelde
Right now it would take garbage values when loading scenes, which could end up written to the scene file.
2019-06-16Merge pull request #29700 from clayjohn/cpuparticles_transform_bugRémi Verschelde
Fix CPU particles bug with local_coords and transform
2019-06-14fix CPU particles bug with local_coords and transformclayjohn
2019-06-13Implement missing orbit velocity for CPUParticles and CPUParticles2DRémi Verschelde
The relevant code was copied from (GPU) ParticlesMaterial but commented out initially, and never ported. Closes #29580.
2019-06-12Merge pull request #29696 from akien-mga/cpuparticles-randomnessRémi Verschelde
CPUParticles: Do randomness ratio computations in phase instead of time
2019-06-11CPUParticles: Do randomness ratio computations in phase instead of timeRémi Verschelde
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.
2019-06-11CPUParticles: Fix inconsistent tangential accelerationRémi Verschelde
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.
2019-05-25Tweak the particle animation node configuration warning messageHugo Locurcio
2019-04-24Make multimesh invisible initially in CPUParticlesDaeil Kim
Fixes #28252
2019-03-20Ensure non-emitting particles not processed on entering treeDaeil Kim
Also removed non-active CPUParticles(3d) from render list Fixes #27066
2019-03-10Fix resetting of CPUParticles (2D and 3D)JFonS
2019-03-09Prevent invisible/inactive cpuparticles to redraw(3d)Daeil Kim
2019-02-18allowing setting particles lifetime greater than 600clayjohn
2019-01-16Appease some CppCheck warns for files in the "scene" directoryMichael Alexsander Silva Dias
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-12-03Merge pull request #24051 from Omicron666/patch-1Rémi Verschelde
Fixes typo in source string sent to translation.
2018-12-02Merge pull request #24007 from JFonS/fix_cpuparticles_scaleRémi Verschelde
Fix "scale" property collision in CPUParticles
2018-11-30Fix "scale" property collision in CPUParticlesJFonS
2018-11-29Fixes typo in source string sent to translation.Omicron
no mesh has ~~not~~ been assigned
2018-11-28Fix many errors found by PVS-StudioAaron Franke
Fix errors 2, 3, 4, 6, 8, 9, 11, 12, 13, 14, and 15.
2018-11-23Fixing wrong type hint on CPUParticles and CPUParticles2D's color rampItalo Vieira
Fixes #22795
2018-11-19Tweak the Hue Variation property hint to allow finer adjustmentsHugo Locurcio