diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-16 17:04:41 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-16 17:04:41 +0100 |
| commit | c79ebff06ae74135c5f67ecc01d5bb55aeb5eda9 (patch) | |
| tree | 6521b1ed109668715a4a75a27e2f6a13218ae480 /tools | |
| parent | 5eba3e77c58941ee02257f077a80558dd152a52e (diff) | |
fix: calculate beat_phase for FlashEffect and refactor uniforms
- seq_compiler.py: Calculate beat_phase from beat_time (was hardcoded 0.0f)
- Refactor: Replace CommonPostProcessUniforms with UniformsSequenceParams
- Remove duplicate struct definition in post_process_helper.h
- Update all CNN effects and tests to use unified uniform struct
- Fixes FlashEffect showing solid white instead of flashing to beat
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/cnn_test.cc | 6 | ||||
| -rwxr-xr-x | tools/seq_compiler.py | 6 | ||||
| -rw-r--r-- | tools/shadertoy/template.cc | 4 |
3 files changed, 9 insertions, 7 deletions
diff --git a/tools/cnn_test.cc b/tools/cnn_test.cc index d88956d..a209cdf 100644 --- a/tools/cnn_test.cc +++ b/tools/cnn_test.cc @@ -1332,7 +1332,7 @@ int main(int argc, char** argv) { // Create uniform buffers const WGPUBufferDescriptor common_uniform_desc = { .usage = WGPUBufferUsage_Uniform | WGPUBufferUsage_CopyDst, - .size = sizeof(CommonPostProcessUniforms), + .size = sizeof(UniformsSequenceParams), }; WGPUBuffer common_uniform_buffer = wgpuDeviceCreateBuffer(device, &common_uniform_desc); @@ -1384,7 +1384,7 @@ int main(int argc, char** argv) { printf("Processing layer %d/%d...\n", layer + 1, NUM_LAYERS); // Update uniforms - CommonPostProcessUniforms common_u = { + UniformsSequenceParams common_u = { .resolution = {static_cast<float>(width), static_cast<float>(height)}, .aspect_ratio = static_cast<float>(width) / static_cast<float>(height), .time = 0.0f, @@ -1410,7 +1410,7 @@ int main(int argc, char** argv) { BindGroupBuilder() .sampler(0, sampler) .texture(1, current_input) - .buffer(2, common_uniform_buffer, sizeof(CommonPostProcessUniforms)) + .buffer(2, common_uniform_buffer, sizeof(UniformsSequenceParams)) .buffer(3, layer_params_buffer, sizeof(CNNv1LayerParams)) .texture(4, original_view) .build(device, bgl); diff --git a/tools/seq_compiler.py b/tools/seq_compiler.py index 6b72ebd..3b8d126 100755 --- a/tools/seq_compiler.py +++ b/tools/seq_compiler.py @@ -516,7 +516,8 @@ void RenderTimeline(WGPUCommandEncoder encoder, float time, int width, int heigh float beat_time, float audio_intensity) { Sequence* seq = GetActiveSequence(time); if (seq) { - seq->preprocess(time, beat_time, 0.0f, audio_intensity); + float beat_phase = fmodf(beat_time, 1.0f); + seq->preprocess(time, beat_time, beat_phase, audio_intensity); seq->render_effects(encoder); } } @@ -584,7 +585,8 @@ void RenderTimeline(WGPUSurface surface, float time, int width, int height, seq->set_sink_view(g_sink_view); // Update uniforms via preprocess - seq->preprocess(time, beat_time, 0.0f, audio_intensity); + float beat_phase = fmodf(beat_time, 1.0f); + seq->preprocess(time, beat_time, beat_phase, audio_intensity); WGPUCommandEncoder encoder = wgpuDeviceCreateCommandEncoder(ctx->device, nullptr); diff --git a/tools/shadertoy/template.cc b/tools/shadertoy/template.cc index 7636c0a..56b4ab5 100644 --- a/tools/shadertoy/template.cc +++ b/tools/shadertoy/template.cc @@ -83,7 +83,7 @@ void ShaderToyEffect::init(MainSequence* demo) { {.binding = 1, .textureView = prev_view}, {.binding = 2, .buffer = uniforms_.get().buffer, - .size = sizeof(CommonPostProcessUniforms)}, + .size = sizeof(UniformsSequenceParams)}, {.binding = 3, .buffer = params_.get().buffer, .size = sizeof(ShaderToyParams)}, @@ -98,7 +98,7 @@ void ShaderToyEffect::init(MainSequence* demo) { void ShaderToyEffect::render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) { - const CommonPostProcessUniforms uniforms = { + const UniformsSequenceParams uniforms = { .resolution = {static_cast<float>(width_), static_cast<float>(height_)}, .aspect_ratio = aspect_ratio, .time = time, |
