summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/plato/plato.c5
-rw-r--r--src/modules/roto/roto.c6
-rw-r--r--src/til.c1
-rw-r--r--src/til_module_context.c2
-rw-r--r--src/til_module_context.h2
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;
}
}
diff --git a/src/til.c b/src/til.c
index fec6b46..78838ef 100644
--- a/src/til.c
+++ b/src/til.c
@@ -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.
© All Rights Reserved