summaryrefslogtreecommitdiff
path: root/src/gpu/effects/flash_effect.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/effects/flash_effect.h')
-rw-r--r--src/gpu/effects/flash_effect.h19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/gpu/effects/flash_effect.h b/src/gpu/effects/flash_effect.h
index 373b48b..71815d5 100644
--- a/src/gpu/effects/flash_effect.h
+++ b/src/gpu/effects/flash_effect.h
@@ -9,22 +9,23 @@
// Parameters for FlashEffect (set at construction time)
struct FlashEffectParams {
- float color[3] = {1.0f, 1.0f, 1.0f}; // Default: white
- float decay_rate = 0.98f; // Default: fast decay
- float trigger_threshold = 0.7f; // Default: trigger on strong beats
+ float color[3] = {1.0f, 1.0f, 1.0f}; // Default: white
+ float decay_rate = 0.98f; // Default: fast decay
+ float trigger_threshold = 0.7f; // Default: trigger on strong beats
};
// Uniform data sent to GPU shader
// IMPORTANT: Must match WGSL struct layout with proper alignment
// vec3<f32> in WGSL has 16-byte alignment, not 12-byte!
struct FlashUniforms {
- float flash_intensity; // offset 0
- float intensity; // offset 4
- float _pad1[2]; // offset 8-15 (padding for vec3 alignment)
- float color[3]; // offset 16-27 (vec3 aligned to 16 bytes)
- float _pad2; // offset 28-31
+ float flash_intensity; // offset 0
+ float intensity; // offset 4
+ float _pad1[2]; // offset 8-15 (padding for vec3 alignment)
+ float color[3]; // offset 16-27 (vec3 aligned to 16 bytes)
+ float _pad2; // offset 28-31
};
-static_assert(sizeof(FlashUniforms) == 32, "FlashUniforms must be 32 bytes for WGSL alignment");
+static_assert(sizeof(FlashUniforms) == 32,
+ "FlashUniforms must be 32 bytes for WGSL alignment");
class FlashEffect : public PostProcessEffect {
public: