LDKParticleSimulationSpace
typedef enum LDKParticleSimulationSpace{
LDK_PARTICLE_SIMULATION_SPACE_LOCAL=0,
LDK_PARTICLE_SIMULATION_SPACE_WORLD
}LDKParticleSimulationSpace;
Particle emitter component.
typedef enum LDKParticleSimulationSpace{
LDK_PARTICLE_SIMULATION_SPACE_LOCAL=0,
LDK_PARTICLE_SIMULATION_SPACE_WORLD
}LDKParticleSimulationSpace;
typedef enum LDKParticleSortMode{
LDK_PARTICLE_SORT_NONE=0,
LDK_PARTICLE_SORT_BACK_TO_FRONT
}LDKParticleSortMode;
typedef enum LDKParticleInterpolationCurve{
LDK_PARTICLE_INTERPOLATION_LINEAR=0,
LDK_PARTICLE_INTERPOLATION_EASE_IN_QUADRATIC,
LDK_PARTICLE_INTERPOLATION_EASE_OUT_QUADRATIC,
LDK_PARTICLE_INTERPOLATION_EASE_IN_OUT_QUADRATIC,
LDK_PARTICLE_INTERPOLATION_SMOOTHSTEP
}LDKParticleInterpolationCurve;
typedef enum LDKParticleEmissionMode{
LDK_PARTICLE_EMISSION_CONTINUOUS=0,
LDK_PARTICLE_EMISSION_DURATION,
LDK_PARTICLE_EMISSION_BURSTS
}LDKParticleEmissionMode;
typedef struct LDKParticleRuntime{
Vec3 position;
Vec3 velocity;
Vec3 initial_tint;
Vec3 final_tint;
float age;
float initial_scale;
float final_scale;
float initial_alpha;
float final_alpha;
float initial_rotation;
float final_rotation;
}LDKParticleRuntime;
typedef struct LDKParticleEmitter{
bool enabled;
LDKAssetMaterial material;
float emission_rate;
LDKParticleEmissionMode emission_mode;
bool play_on_start;
float emission_duration;
u32 burst_count;
u32 particles_per_burst;
float burst_interval;
u32 max_particles;
float lifetime;
Vec3 initial_velocity;
Vec3 velocity_variation;
Vec3 acceleration;
float initial_scale;
float initial_scale_variation;
float final_scale;
float final_scale_variation;
float initial_alpha;
float initial_alpha_variation;
float final_alpha;
float final_alpha_variation;
u32 initial_tint;
u32 initial_tint_variation;
u32 final_tint;
u32 final_tint_variation;
float initial_rotation;
float initial_rotation_variation;
float final_rotation;
float final_rotation_variation;
LDKParticleInterpolationCurve interpolation_curve;
LDKParticleSimulationSpace simulation_space;
LDKParticleSortMode sort_mode;
bool playing;
bool playback_started;
LDKParticleEmissionMode active_emission_mode;
float active_duration;
u32 active_burst_count;
float emission_elapsed;
u32 bursts_emitted;
LDKParticleRuntime *particles;
u32 particle_count;
u32 particle_capacity;
float emission_accumulator;
u32 random_state;
u32 runtime_error_flags;
}LDKParticleEmitter;
Create default settings for particle emitter.
LDK_API LDKParticleEmitter ldk_particle_emitter_make_default(void);
A value initialized with the engine defaults.
Start the configured mode if not playing.
LDK_API bool ldk_particle_emitter_play(LDKParticleEmitter *emitter);
LDKParticleEmitter *emitterTrue if the operation succeeds; false otherwise.
Restart the configured mode without killing existing particles.
LDK_API bool ldk_particle_emitter_restart(LDKParticleEmitter *emitter);
LDKParticleEmitter *emitterTrue if the operation succeeds; false otherwise.
Stop future emission; live particles continue simulating.
LDK_API void ldk_particle_emitter_stop(LDKParticleEmitter *emitter);
LDKParticleEmitter *emitterPlay the configured burst parameters for exactly count bursts.
LDK_API bool ldk_particle_emitter_emit_bursts(
LDKParticleEmitter *emitter,
u32 count
);
LDKParticleEmitter *emitteru32 countTrue if the operation succeeds; false otherwise.
Play the configured emission rate for the specified duration.
LDK_API bool ldk_particle_emitter_emit_for(
LDKParticleEmitter *emitter,
float seconds
);
LDKParticleEmitter *emitterfloat secondsTrue if the operation succeeds; false otherwise.
Remove all live particles without stopping scheduled emission.
LDK_API void ldk_particle_emitter_clear(LDKParticleEmitter *emitter);
LDKParticleEmitter *emitterBuild the ECS registration descriptor for the particle emitter component.
LDK_API LDKComponentDesc ldk_particle_emitter_component_desc(u32 initial_capacity);
u32 initial_capacityA descriptor for the requested component or resource.