diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2020-03-29 18:44:08 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2020-09-11 01:05:40 -0700 |
commit | e34d928d56debcb6dbdc4f16335ece59209b5e27 (patch) | |
tree | 6aad462dc06b02933dba441abc92cd0dd3c29cd2 /src | |
parent | 521da365b17aaf861af33bcc3c79ffedf1a77cf0 (diff) |
modules/sparkler: add particles conf parameter
Just stubbed out for now, wanting to restore some octree overlays like
the old standalone sparkler had. Those can be wired up to settings so
rtv can occasionally show the spatial partition and matched particles.
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/sparkler/particles.c | 6 | ||||
-rw-r--r-- | src/modules/sparkler/particles.h | 7 | ||||
-rw-r--r-- | src/modules/sparkler/sparkler.c | 2 |
3 files changed, 12 insertions, 3 deletions
diff --git a/src/modules/sparkler/particles.c b/src/modules/sparkler/particles.c index 8ebb61d..b43c57b 100644 --- a/src/modules/sparkler/particles.c +++ b/src/modules/sparkler/particles.c @@ -40,11 +40,12 @@ struct particles_t { chunker_t *chunker; /* chunker for variably-sized particle allocation (includes context) */ list_head_t active; /* top-level active list of particles heirarchy */ bsp_t *bsp; /* bsp spatial index of the particles */ + particles_conf_t conf; }; /* create a new particle system */ -particles_t * particles_new(void) +particles_t * particles_new(const particles_conf_t *conf) { particles_t *particles; @@ -65,6 +66,9 @@ particles_t * particles_new(void) INIT_LIST_HEAD(&particles->active); + if (conf) + particles->conf = *conf; + return particles; } diff --git a/src/modules/sparkler/particles.h b/src/modules/sparkler/particles.h index 689934b..b191b6e 100644 --- a/src/modules/sparkler/particles.h +++ b/src/modules/sparkler/particles.h @@ -6,9 +6,14 @@ #include "list.h" #include "particle.h" +typedef struct particles_conf_t { + unsigned show_bsp_leafs:1; + unsigned show_bsp_matches:1; +} particles_conf_t; + typedef struct particles_t particles_t; -particles_t * particles_new(void); +particles_t * particles_new(const particles_conf_t *conf); void particles_draw(particles_t *particles, fb_fragment_t *fragment); particle_status_t particles_sim(particles_t *particles); void particles_age(particles_t *particles); diff --git a/src/modules/sparkler/sparkler.c b/src/modules/sparkler/sparkler.c index 7c1c2f1..bdee130 100644 --- a/src/modules/sparkler/sparkler.c +++ b/src/modules/sparkler/sparkler.c @@ -38,7 +38,7 @@ static void * sparkler_create_context(unsigned ticks, unsigned num_cpus) if (!ctxt) return NULL; - ctxt->particles = particles_new(); + ctxt->particles = particles_new(NULL); if (!ctxt->particles) { free(ctxt); return NULL; |