summaryrefslogtreecommitdiff
path: root/tools/seq_compiler.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-08 19:38:05 +0100
committerskal <pascal.massimino@gmail.com>2026-02-08 19:38:05 +0100
commit24094f91da919d99aaaaf47cbd08087c2aa87ca9 (patch)
tree9e368453cc9a38c3f7800c1e169cb68160383151 /tools/seq_compiler.cc
parent7003451944904464e08f2abd0bb3c89912949fd1 (diff)
feat(gpu): Add VignetteEffect and related files
- Implemented VignetteEffect, including its shader, parameters, and sequence integration. - Added VignetteEffect to demo_effects.h, shaders.cc/h, and asset definitions. - Updated seq_compiler to handle VignetteEffect parameters. - Added VignetteEffect to test suite and updated expected counts. - Ensured all changes build and tests pass. - Added vignette_effect.cc implementation file. - Updated CMakeLists.txt to include the new effect file. - Updated assets/demo.seq to include the VignetteEffect. - Updated assets/final/demo_assets.txt with the new shader asset.
Diffstat (limited to 'tools/seq_compiler.cc')
-rw-r--r--tools/seq_compiler.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/seq_compiler.cc b/tools/seq_compiler.cc
index 218ef93..0a17005 100644
--- a/tools/seq_compiler.cc
+++ b/tools/seq_compiler.cc
@@ -978,6 +978,24 @@ int main(int argc, char* argv[]) {
<< eff.class_name << ">(ctx, p), " << eff.start << "f, "
<< eff.end << "f, " << eff.priority << ");\n";
out_file << " }\n";
+ } else if (!eff.params.empty() &&
+ eff.class_name == "VignetteEffect") {
+ // Generate parameter struct initialization for VignetteEffect
+ out_file << " {\n";
+ out_file << " VignetteParams p;\n";
+
+ for (const auto& [key, value] : eff.params) {
+ if (key == "radius") {
+ out_file << " p.radius = " << value << "f;\n";
+ } else if (key == "softness") {
+ out_file << " p.softness = " << value << "f;\n";
+ }
+ }
+
+ out_file << " seq->add_effect(std::make_shared<"
+ << eff.class_name << ">(ctx, p), " << eff.start << "f, "
+ << eff.end << "f, " << eff.priority << ");\n";
+ out_file << " }\n";
} else {
// No parameters or unsupported effect - use default constructor
out_file << " seq->add_effect(std::make_shared<" << eff.class_name