![]() |
CRM64Pro GDK v0.20.0
A free cross-platform game development kit built on top of SDL 3.0
|
Particle Manager and ParticleEmitter objects for configurable real-time particle effects [v26.08.00].
The Particle module provides CPU-simulated particle emitters rendered through CRM64Pro graphics resources. Emitters can use primitive visuals, Image resources, Sprite resources or soft radial particles, with configurable lifetime, color, scale, velocity, gravity, attraction, orbit and world-space collision behavior. Soft additive particles can use the cached GFX glow path, and Image/Sprite particles can opt into additive glow-helper rendering for decorative emissive effects.
Built-in presets are ordered by practical group so tools can display the preset enum directly.
This is a standard object manager. ParticleEmitter objects are created or loaded by ParticleMgr and accessed by handle. The manager owns all ParticleEmitter instances and releases them automatically when Main is terminated.
Saved effects are named C64_PARTICLE CDC resources. Built-in presets are templates, not live shared emitters. A C64Particle Scene object clones the asset named by c64scn_particle; its c64scn_particle_preset is used only when no asset is set. Every Scene object owns independent particle state, timing and random sequence.
ParticleEmitter::update() advances one emitter serially on the main thread. ParticleMgr::update() batches standalone emitters and can use internal workers while the main thread participates. Scene-owned emitters use the same batch automatically during Scene::update() and are excluded from ParticleMgr::update() and ParticleMgr::render(). Every update call waits for simulation, collision collection, sub-emitter creation and auto-close processing before returning; rendering remains on the main thread. See Threading conventions.
Classes | |
| struct | CRM64Pro::ParticleColorKey |
| Particle color ramp key. More... | |
| struct | CRM64Pro::ParticleScaleKey |
| Particle scale ramp key. More... | |
| struct | CRM64Pro::ParticleBurst |
| Timed particle burst entry. More... | |
| struct | CRM64Pro::ParticleSubEmitter |
| Particle sub-emitter definition. More... | |
| struct | CRM64Pro::ParticlePresetDesc |
| Particle preset descriptor. More... | |
| class | CRM64Pro::ParticleEmitter |
| Particle emitter object class. More... | |
| class | CRM64Pro::ParticleMgr |
| Particle manager class. More... | |
| enum CRM64Pro::eParticleVisual : Uint32 |
Particle visual rendering types.
| Enumerator | |
|---|---|
| PV_PIXEL | Render each particle as a pixel. |
| PV_RECT | Render each particle as a filled rectangle. |
| PV_IMAGE | Render each particle using an Image resource. |
| PV_SPRITE | Render each particle using a Sprite resource. |
| PV_SOFT | Render each particle as a soft radial glow. |
| PV_LINE | Render each particle as a line segment. |
| enum CRM64Pro::eParticleSpriteAnimation : Uint32 |
| enum CRM64Pro::eParticleEmitterShape : Uint32 |
Particle emitter geometric shapes.
| enum CRM64Pro::eParticleDirectionMode : Uint32 |
| enum CRM64Pro::eParticleDrawOrder : Uint32 |
| enum CRM64Pro::eParticleCollisionMode : Uint32 |
| enum CRM64Pro::eParticleEffectPreset : Uint32 |
Particle effect presets.
| enum CRM64Pro::eParticleSubEmitterTrigger : Uint32 |