virtual void render(GPURenderer &renderer, const Camera &cam, const Vec2i &screenSize)=0
Submit particle draw calls to the renderer.
virtual void update(float dt)=0
Advance the particle simulation by dt seconds.
virtual bool isFinished() const =0
Return true when the effect has emitted and faded all particles.
Abstract interface for a self-contained particle effect.