From e34d928d56debcb6dbdc4f16335ece59209b5e27 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Sun, 29 Mar 2020 18:44:08 -0700 Subject: 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. --- src/modules/sparkler/particles.c | 6 +++++- src/modules/sparkler/particles.h | 7 ++++++- src/modules/sparkler/sparkler.c | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'src') 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; -- cgit v1.2.3