From ad04490ef84d7565fbec0fa878a21694ad2d61f0 Mon Sep 17 00:00:00 2001 From: pryazha Date: Tue, 26 Aug 2025 10:55:18 +0500 Subject: guess that's all --- in_practice/breakout/particle.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 in_practice/breakout/particle.h (limited to 'in_practice/breakout/particle.h') diff --git a/in_practice/breakout/particle.h b/in_practice/breakout/particle.h new file mode 100644 index 0000000..3e5d9a6 --- /dev/null +++ b/in_practice/breakout/particle.h @@ -0,0 +1,38 @@ +#ifndef PARTICLE_H +#define PARTICLE_H + +#include "my_math.h" +#include "object.h" + +struct particle { + v2 pos; + v2 vel; + v4 color; + f32 life; +}; + +#define default_particle { \ + .pos = {0.0f, 0.0f}, \ + .vel = {0.0f, 0.0f}, \ + .color = {1.0f, 1.0f, 1.0f, 1.0f}, \ + .life = 0.0f \ +} + +#define MAX_PARTICLES 500 + +struct particle_generator { + struct particle particles[MAX_PARTICLES]; + i32 new; + u32 shader; + u32 texture; + u32 vao; +}; + +void respawn_particle(struct particle *particle, struct object object, v2 offset); +i32 find_unused_particle(struct particle_generator generator); +struct particle_generator init_generator(i32 new, u32 shader, u32 texture); +void update_particles(struct particle_generator *generator, struct object object, f32 dt, v2 offset); +void render_particles(struct particle_generator generator); +void reset_particles(struct particle_generator *generator); + +#endif -- cgit v1.2.3-70-g09d2