Packed font rendering

This commit is contained in:
2022-12-28 22:50:54 +00:00
parent 329e10f2d6
commit 76273e1c54
23 changed files with 211 additions and 132 deletions

55
source/engine/particle.c Normal file
View File

@@ -0,0 +1,55 @@
#include "particle.h"
struct emitter make_emitter()
{
struct emitter e = { 0 };
return e;
}
struct emitter set_emitter(struct emitter e)
{
arrsetlen(e.particles, e.max);
e.first = &e.particles[0];
for (int i = 0; i < arrlen(e.particles)-1; i++) {
e.particles[i].next = &e.particles[i+1];
}
}
void free_emitter(struct emitter e)
{
arrfree(e.particles);
}
void start_emitter(struct emitter e)
{
}
void pause_emitter(struct emitter e)
{
}
void stop_emitter(struct emitter e)
{
}
void emitter_step(struct emitter e, double dt)
{
for (int i = 0; i < arrlen(e.particles); i++) {
if (e.particles[i].life <= 0)
continue;
e.particles[i].pos = cpvadd(e.particles[i].pos, cpvmult(e.particles[i].v, dt));
e.particles[i].angle += e.particles[i].av * dt;
e.particles[i].life -= dt;
if (e.particles[i].life <= 0) {
e.particles[i].next = e.first;
e.first = &e.particles[i];
}
}
}