summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2020-03-29 18:44:08 -0700
committerVito Caputo <vcaputo@pengaru.com>2020-09-11 01:05:40 -0700
commite34d928d56debcb6dbdc4f16335ece59209b5e27 (patch)
tree6aad462dc06b02933dba441abc92cd0dd3c29cd2 /src
parent521da365b17aaf861af33bcc3c79ffedf1a77cf0 (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.c6
-rw-r--r--src/modules/sparkler/particles.h7
-rw-r--r--src/modules/sparkler/sparkler.c2
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;
© All Rights Reserved