summaryrefslogtreecommitdiff
path: root/src/modules/sparkler
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2023-05-11 12:51:00 -0700
committerVito Caputo <vcaputo@pengaru.com>2023-05-11 15:19:25 -0700
commit0d9aa593e68f33da8ea71a04b930bb6093dbaccb (patch)
tree679fd3c55385e597176b51a7d4b4c297680ad341 /src/modules/sparkler
parentdede4eca3e2fca76f297b5f5b901434cb99eafb0 (diff)
modules/*: stop storing setup by value in contexts
With setup refcounting and a reference bound to the context, we should just dereference the single instance. The way setups are used it just as a read-only thing to affect context behavior... Note I've left the module-type-specific setup pointer despite it duplicating the setup pointer in the module_context. This is just a convenience thing so the accessors don't have to cast the general til_setup_t* to my_module_setup_t* everywhere.
Diffstat (limited to 'src/modules/sparkler')
-rw-r--r--src/modules/sparkler/sparkler.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/modules/sparkler/sparkler.c b/src/modules/sparkler/sparkler.c
index f35852a..3f3c681 100644
--- a/src/modules/sparkler/sparkler.c
+++ b/src/modules/sparkler/sparkler.c
@@ -28,7 +28,7 @@ typedef struct sparkler_setup_t {
typedef struct sparkler_context_t {
til_module_context_t til_module_context;
particles_t *particles;
- sparkler_setup_t setup;
+ sparkler_setup_t *setup;
} sparkler_context_t;
extern particle_ops_t simple_ops;
@@ -41,7 +41,7 @@ static til_module_context_t * sparkler_create_context(const til_module_t *module
if (!ctxt)
return NULL;
- ctxt->setup = *(sparkler_setup_t *)setup;
+ ctxt->setup = (sparkler_setup_t *)setup;
ctxt->particles = particles_new(&(particles_conf_t){
.show_bsp_leafs = ((sparkler_setup_t *)setup)->show_bsp_leafs,
@@ -77,7 +77,7 @@ static void sparkler_prepare_frame(til_module_context_t *context, til_stream_t *
*res_frame_plan = (til_frame_plan_t){ .fragmenter = til_fragmenter_slice_per_cpu };
- if (ctxt->setup.show_bsp_matches)
+ if (ctxt->setup->show_bsp_matches)
til_fb_fragment_clear(fragment);
particles_sim(ctxt->particles, fragment);
@@ -92,7 +92,7 @@ static void sparkler_render_fragment(til_module_context_t *context, til_stream_t
sparkler_context_t *ctxt = (sparkler_context_t *)context;
til_fb_fragment_t *fragment = *fragment_ptr;
- if (!ctxt->setup.show_bsp_matches)
+ if (!ctxt->setup->show_bsp_matches)
til_fb_fragment_clear(fragment);
particles_draw(ctxt->particles, fragment);
© All Rights Reserved