diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2023-08-16 22:18:02 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2023-08-16 22:18:02 -0700 |
commit | 0b471f3579e49c28032536de3c276a9d6eddd15d (patch) | |
tree | c7f653609aca80ccd0871c946900affd3589c99d /src/modules/drizzle | |
parent | 32829e6222554d9c46bfe1e6bbd9784de6860f6a (diff) |
modules/*: update all taps in context_create()
Mechanical change of ensuring what little taps are implemented
always get updated @ til_module_t.context_create() time as well
as on every frame.
This ensures the pipes are registered on stream immediately upon
context creation, rather than appearing only once the context
gets rendered the first time.
Diffstat (limited to 'src/modules/drizzle')
-rw-r--r-- | src/modules/drizzle/drizzle.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/modules/drizzle/drizzle.c b/src/modules/drizzle/drizzle.c index 9ca58f7..54ca204 100644 --- a/src/modules/drizzle/drizzle.c +++ b/src/modules/drizzle/drizzle.c @@ -91,6 +91,16 @@ static inline uint32_t color_to_uint32(v3f_t color) { } +static void drizzle_update_taps(drizzle_context_t *ctxt, til_stream_t *stream, unsigned ticks) +{ + if (!til_stream_tap_context(stream, &ctxt->til_module_context, NULL, &ctxt->taps.viscosity)) + *ctxt->viscosity = ctxt->setup->viscosity; + + if (!til_stream_tap_context(stream, &ctxt->til_module_context, NULL, &ctxt->taps.rainfall)) + *ctxt->rainfall = RAINFALL_CNT; +} + + static til_module_context_t * drizzle_create_context(const til_module_t *module, til_stream_t *stream, unsigned seed, unsigned ticks, unsigned n_cpus, til_setup_t *setup) { drizzle_context_t *ctxt; @@ -110,6 +120,8 @@ static til_module_context_t * drizzle_create_context(const til_module_t *module, ctxt->setup = (drizzle_setup_t *)setup; + drizzle_update_taps(ctxt, stream, ticks); + return &ctxt->til_module_context; } @@ -127,11 +139,7 @@ static void drizzle_prepare_frame(til_module_context_t *context, til_stream_t *s { drizzle_context_t *ctxt = (drizzle_context_t *)context; - if (!til_stream_tap_context(stream, context, NULL, &ctxt->taps.viscosity)) - *ctxt->viscosity = ctxt->setup->viscosity; - - if (!til_stream_tap_context(stream, context, NULL, &ctxt->taps.rainfall)) - *ctxt->rainfall = RAINFALL_CNT; + drizzle_update_taps(ctxt, stream, ticks); *res_frame_plan = (til_frame_plan_t){ .fragmenter = til_fragmenter_slice_per_cpu_x16 }; |