From 24094f91da919d99aaaaf47cbd08087c2aa87ca9 Mon Sep 17 00:00:00 2001 From: skal Date: Sun, 8 Feb 2026 19:38:05 +0100 Subject: 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. --- src/tests/test_demo_effects.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/tests/test_demo_effects.cc') diff --git a/src/tests/test_demo_effects.cc b/src/tests/test_demo_effects.cc index a5500a8..03d22e3 100644 --- a/src/tests/test_demo_effects.cc +++ b/src/tests/test_demo_effects.cc @@ -13,9 +13,9 @@ // Expected effect counts - UPDATE THESE when adding new effects! static constexpr int EXPECTED_POST_PROCESS_COUNT = - 8; // FlashEffect, PassthroughEffect, GaussianBlurEffect, + 9; // FlashEffect, PassthroughEffect, GaussianBlurEffect, // ChromaAberrationEffect, DistortEffect, SolarizeEffect, FadeEffect, - // ThemeModulationEffect + // ThemeModulationEffect, VignetteEffect static constexpr int EXPECTED_SCENE_COUNT = 6; // HeptagonEffect, ParticlesEffect, ParticleSprayEffect, // MovingEllipseEffect, FlashCubeEffect, Hybrid3DEffect @@ -98,6 +98,7 @@ static void test_post_process_effects() { {"FadeEffect", std::make_shared(fixture.ctx())}, {"ThemeModulationEffect", std::make_shared(fixture.ctx())}, + {"VignetteEffect", std::make_shared(fixture.ctx())}, }; int passed = 0; @@ -211,6 +212,10 @@ static void test_effect_type_classification() { assert(blur->is_post_process() && "GaussianBlurEffect should be post-process"); + auto vignette = std::make_shared(fixture.ctx()); + assert(vignette->is_post_process() && + "VignetteEffect should be post-process"); + // Scene effects should return false auto heptagon = std::make_shared(fixture.ctx()); assert(!heptagon->is_post_process() && -- cgit v1.2.3