diff options
-rw-r--r-- | src/modules/plato/plato.c | 5 | ||||
-rw-r--r-- | src/modules/roto/roto.c | 6 | ||||
-rw-r--r-- | src/til.c | 1 | ||||
-rw-r--r-- | src/til_module_context.c | 2 | ||||
-rw-r--r-- | src/til_module_context.h | 2 |
5 files changed, 7 insertions, 9 deletions
diff --git a/src/modules/plato/plato.c b/src/modules/plato/plato.c index f43eda3..a20137e 100644 --- a/src/modules/plato/plato.c +++ b/src/modules/plato/plato.c @@ -658,9 +658,8 @@ static void plato_render_fragment(til_module_context_t *context, til_stream_t *s (void) til_stream_tap_context(stream, context, NULL, &ctxt->taps.orbit_rate); (void) til_stream_tap_context(stream, context, NULL, &ctxt->taps.spin_rate); - ctxt->r += (float)(ticks - context->ticks) * (*ctxt->orbit_rate * .001f); - ctxt->rr += (float)(ticks - context->ticks) * (*ctxt->spin_rate * .001f); - context->ticks = ticks; + ctxt->r += (float)(ticks - context->last_ticks) * (*ctxt->orbit_rate * .001f); + ctxt->rr += (float)(ticks - context->last_ticks) * (*ctxt->spin_rate * .001f); til_fb_fragment_clear(fragment); for (int i = 0; i < sizeof(polyhedra) / sizeof(*polyhedra); i++) { diff --git a/src/modules/roto/roto.c b/src/modules/roto/roto.c index 8564870..28e27e1 100644 --- a/src/modules/roto/roto.c +++ b/src/modules/roto/roto.c @@ -189,9 +189,9 @@ static void roto_prepare_frame(til_module_context_t *context, til_stream_t *stre *res_frame_plan = (til_frame_plan_t){ .fragmenter = til_fragmenter_slice_per_cpu }; // This governs the rotation and color cycle. - if (ticks != context->ticks) { + if (ticks != context->last_ticks) { ctxt->r += FIXED_TO_INT(FIXED_MULT(FIXED_SIN(ctxt->rr), FIXED_NEW(16))); - ctxt->rr += (ticks - context->ticks) >> 2; + ctxt->rr += (ticks - context->last_ticks) >> 2; /* Vary the colors, this is just a mashup of sinusoidal rgb values. */ ctxt->palette[0].r = (FIXED_MULT(FIXED_COS(ctxt->rr), FIXED_NEW(127)) + FIXED_NEW(128)); @@ -201,8 +201,6 @@ static void roto_prepare_frame(til_module_context_t *context, til_stream_t *stre ctxt->palette[1].r = (FIXED_MULT(FIXED_SIN(ctxt->rr / 2), FIXED_NEW(127)) + FIXED_NEW(128)); ctxt->palette[1].g = (FIXED_MULT(FIXED_COS(ctxt->rr / 2), FIXED_NEW(127)) + FIXED_NEW(128)); ctxt->palette[1].b = (FIXED_MULT(FIXED_SIN(ctxt->rr), FIXED_NEW(127)) + FIXED_NEW(128)); - - context->ticks = ticks; } } @@ -395,6 +395,7 @@ static void module_render_fragment(til_module_context_t *context, til_stream_t * void til_module_render(til_module_context_t *context, til_stream_t *stream, unsigned ticks, til_fb_fragment_t **fragment_ptr) { module_render_fragment(context, stream, til_threads, ticks, fragment_ptr); + context->last_ticks = ticks; } diff --git a/src/til_module_context.c b/src/til_module_context.c index 092e3e1..8b13410 100644 --- a/src/til_module_context.c +++ b/src/til_module_context.c @@ -47,7 +47,7 @@ void * til_module_context_new(const til_module_t *module, size_t size, til_strea module_context->module = module; module_context->stream = stream; module_context->seed = seed; - module_context->ticks = ticks; + module_context->last_ticks = ticks; module_context->n_cpus = n_cpus; module_context->setup = til_setup_ref(setup); module_context->refcount = 1; diff --git a/src/til_module_context.h b/src/til_module_context.h index 05f77ab..e4c0bca 100644 --- a/src/til_module_context.h +++ b/src/til_module_context.h @@ -10,7 +10,7 @@ struct til_module_context_t { const til_module_t *module; til_stream_t *stream; /* optional stream this context is part of (module_contexts are discoverable @setup->path when part of a stream) */ unsigned seed; - unsigned ticks; + unsigned last_ticks; /* this gets updated after every render finishes, starts as the ticks supplied @ context create */ unsigned n_cpus; til_setup_t *setup; /* Baked setup this context was made from, reffed by context. * Always present as it provides the path, which is generally derived from a settings instance. |