summaryrefslogtreecommitdiff
path: root/tools/seq_compiler.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/seq_compiler.py')
-rwxr-xr-xtools/seq_compiler.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/tools/seq_compiler.py b/tools/seq_compiler.py
index 3b8d126..70faf5b 100755
--- a/tools/seq_compiler.py
+++ b/tools/seq_compiler.py
@@ -446,6 +446,16 @@ def main():
print("Error: No sequences found in input file", file=sys.stderr)
sys.exit(1)
+ # Sort sequences by start time
+ sequences.sort(key=lambda s: s.start_time)
+
+ # Calculate demo duration from max effect end time (absolute time)
+ demo_duration = 0.0
+ for seq in sequences:
+ for effect in seq.effects:
+ # Effect times are relative to sequence start
+ demo_duration = max(demo_duration, seq.start_time + effect.end)
+
# Process each sequence
all_cpp = '''// Generated by seq_compiler.py
// DO NOT EDIT
@@ -523,7 +533,7 @@ void RenderTimeline(WGPUCommandEncoder encoder, float time, int width, int heigh
}
float GetDemoDuration() {
- return 40.0f; // TODO: Calculate from sequences
+ return ''' + f'{demo_duration:.1f}f' + ''';
}
// Surface-based rendering with framebuffers