From 7041babc9e5333d01191f3eb80fd711bd26cd4f7 Mon Sep 17 00:00:00 2001 From: skal Date: Tue, 17 Feb 2026 08:46:01 +0100 Subject: feat: add time-based effect activation with auto-passthrough Effects now accept start/end time parameters and automatically passthrough when inactive. Implements buffer chain integrity via compile-time validation. - Effect base class: dispatch_render() checks time bounds, auto-passthroughs 1:1 input/output effects outside [start, end] interval - seq_compiler.py: validates producer/consumer lifespan constraints for multi-output effects, adds --validate flag, always validates before codegen - Updated all 9 effect classes and test fixtures to pass start/end times - check_all.sh: includes timeline validation step - Tests: 34/34 passing, demo runs successfully Co-Authored-By: Claude Sonnet 4.5 --- src/effects/placeholder_effect.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/effects/placeholder_effect.cc') diff --git a/src/effects/placeholder_effect.cc b/src/effects/placeholder_effect.cc index 1428779..6ba665a 100644 --- a/src/effects/placeholder_effect.cc +++ b/src/effects/placeholder_effect.cc @@ -9,9 +9,10 @@ Placeholder::Placeholder(const GpuContext& ctx, const std::vector& inputs, const std::vector& outputs, + float start_time, float end_time, const char* placeholder_name) - : Effect(ctx, inputs, outputs), pipeline_(nullptr), bind_group_(nullptr), - sampler_(nullptr), name_(placeholder_name) { + : Effect(ctx, inputs, outputs, start_time, end_time), pipeline_(nullptr), + bind_group_(nullptr), sampler_(nullptr), name_(placeholder_name) { // Log once on construction fprintf(stderr, "TODO: %s not yet implemented, using passthrough\n", name_); -- cgit v1.2.3