LDKParticleSimulationSpace

typedef enum LDKParticleSimulationSpace{
  LDK_PARTICLE_SIMULATION_SPACE_LOCAL=0,
  LDK_PARTICLE_SIMULATION_SPACE_WORLD
}LDKParticleSimulationSpace;

LDKParticleSortMode

typedef enum LDKParticleSortMode{
  LDK_PARTICLE_SORT_NONE=0,
  LDK_PARTICLE_SORT_BACK_TO_FRONT
}LDKParticleSortMode;

LDKParticleInterpolationCurve

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;

LDKParticleEmissionMode

typedef enum LDKParticleEmissionMode{
  LDK_PARTICLE_EMISSION_CONTINUOUS=0,
  LDK_PARTICLE_EMISSION_DURATION,
  LDK_PARTICLE_EMISSION_BURSTS
}LDKParticleEmissionMode;

LDKParticleRuntime

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;

LDKParticleEmitter

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;

ldk_particle_emitter_make_default

Create default settings for particle emitter.

LDK_API LDKParticleEmitter ldk_particle_emitter_make_default(void);

Returns

A value initialized with the engine defaults.

ldk_particle_emitter_restart

Restart the configured mode without killing existing particles.

LDK_API bool ldk_particle_emitter_restart(LDKParticleEmitter *emitter);

Parameters

LDKParticleEmitter *emitter
Particle emitter component being controlled.

Returns

True if the operation succeeds; false otherwise.

ldk_particle_emitter_emit_bursts

Play the configured burst parameters for exactly count bursts.

LDK_API bool ldk_particle_emitter_emit_bursts(
 LDKParticleEmitter *emitter,
 u32 count
);

Parameters

LDKParticleEmitter *emitter
Particle emitter component being controlled.
u32 count
Number of items to process.

Returns

True if the operation succeeds; false otherwise.

ldk_particle_emitter_emit_for

Play the configured emission rate for the specified duration.

LDK_API bool ldk_particle_emitter_emit_for(
 LDKParticleEmitter *emitter,
 float seconds
);

Parameters

LDKParticleEmitter *emitter
Particle emitter component being controlled.
float seconds
Duration in seconds.

Returns

True if the operation succeeds; false otherwise.

ldk_particle_emitter_component_desc

Build the ECS registration descriptor for the particle emitter component.

LDK_API LDKComponentDesc ldk_particle_emitter_component_desc(u32 initial_capacity);

Parameters

u32 initial_capacity
Initial number of entries reserved in the registry.

Returns

A descriptor for the requested component or resource.