summaryrefslogtreecommitdiff
path: root/src/gpu/demo_effects.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/demo_effects.h')
-rw-r--r--src/gpu/demo_effects.h55
1 files changed, 18 insertions, 37 deletions
diff --git a/src/gpu/demo_effects.h b/src/gpu/demo_effects.h
index 54bf657..ff7e017 100644
--- a/src/gpu/demo_effects.h
+++ b/src/gpu/demo_effects.h
@@ -7,12 +7,14 @@
#include "3d/scene.h"
#include "effect.h"
#include "gpu/effects/circle_mask_effect.h"
-#include "gpu/effects/fade_effect.h" // FadeEffect with full definition
+#include "gpu/effects/fade_effect.h" // FadeEffect with full definition
#include "gpu/effects/flash_effect.h" // FlashEffect with params support
#include "gpu/effects/post_process_helper.h"
#include "gpu/effects/rotating_cube_effect.h"
#include "gpu/effects/shaders.h"
#include "gpu/effects/theme_modulation_effect.h" // ThemeModulationEffect with full definition
+#include "gpu/effects/hybrid_3d_effect.h"
+#include "gpu/effects/flash_cube_effect.h"
#include "gpu/gpu.h"
#include "gpu/texture_manager.h"
#include "gpu/uniform_helper.h"
@@ -49,7 +51,6 @@ class ParticlesEffect : public Effect {
ComputePass compute_pass_;
RenderPass render_pass_;
GpuBuffer particles_buffer_;
- UniformBuffer<CommonPostProcessUniforms> uniforms_;
};
class PassthroughEffect : public PostProcessEffect {
@@ -58,7 +59,6 @@ class PassthroughEffect : public PostProcessEffect {
void update_bind_group(WGPUTextureView input_view) override;
private:
- UniformBuffer<CommonPostProcessUniforms> uniforms_;
};
class MovingEllipseEffect : public Effect {
@@ -83,7 +83,6 @@ class ParticleSprayEffect : public Effect {
ComputePass compute_pass_;
RenderPass render_pass_;
GpuBuffer particles_buffer_;
- UniformBuffer<CommonPostProcessUniforms> uniforms_;
};
// Parameters for GaussianBlurEffect (set at construction time)
@@ -106,7 +105,6 @@ class GaussianBlurEffect : public PostProcessEffect {
private:
GaussianBlurParams params_;
- UniformBuffer<CommonPostProcessUniforms> uniforms_;
UniformBuffer<GaussianBlurParams> params_buffer_;
};
@@ -118,7 +116,6 @@ class SolarizeEffect : public PostProcessEffect {
void update_bind_group(WGPUTextureView input_view) override;
private:
- UniformBuffer<CommonPostProcessUniforms> uniforms_;
};
// Parameters for VignetteEffect
@@ -137,7 +134,6 @@ class VignetteEffect : public PostProcessEffect {
private:
VignetteParams params_;
- UniformBuffer<CommonPostProcessUniforms> uniforms_;
UniformBuffer<VignetteParams> params_buffer_;
};
@@ -160,48 +156,33 @@ class ChromaAberrationEffect : public PostProcessEffect {
private:
ChromaAberrationParams params_;
- UniformBuffer<CommonPostProcessUniforms> uniforms_;
UniformBuffer<ChromaAberrationParams> params_buffer_;
};
-class Hybrid3DEffect : public Effect {
- public:
- Hybrid3DEffect(const GpuContext& ctx);
- void init(MainSequence* demo) override;
- void render(WGPURenderPassEncoder pass, float time, float beat,
- float intensity, float aspect_ratio) override;
-
- private:
- Renderer3D renderer_;
- TextureManager texture_manager_;
- Scene scene_;
- Camera camera_;
- int width_ = 1280;
- int height_ = 720;
+// Parameters for DistortEffect
+struct DistortParams {
+ float strength = 0.01f; // Default distortion strength
+ float speed = 1.0f; // Default distortion speed
};
+static_assert(sizeof(DistortParams) == 8, "DistortParams must be 8 bytes for WGSL alignment");
-class FlashCubeEffect : public Effect {
+class DistortEffect : public PostProcessEffect {
public:
- FlashCubeEffect(const GpuContext& ctx);
- void init(MainSequence* demo) override;
- void resize(int width, int height) override;
+ DistortEffect(const GpuContext& ctx);
+ DistortEffect(const GpuContext& ctx, const DistortParams& params);
void render(WGPURenderPassEncoder pass, float time, float beat,
float intensity, float aspect_ratio) override;
+ void update_bind_group(WGPUTextureView input_view) override;
private:
- Renderer3D renderer_;
- TextureManager texture_manager_;
- Scene scene_;
- Camera camera_;
- int width_ = 1280;
- int height_ = 720;
- float last_beat_;
- float flash_intensity_;
+ DistortParams params_;
+ UniformBuffer<DistortParams> params_buffer_;
};
-// ThemeModulationEffect now defined in gpu/effects/theme_modulation_effect.h (included above)
-// FadeEffect now defined in gpu/effects/fade_effect.h (included above)
-// FlashEffect now defined in gpu/effects/flash_effect.h (included above)
+// ThemeModulationEffect now defined in gpu/effects/theme_modulation_effect.h
+// (included above) FadeEffect now defined in gpu/effects/fade_effect.h
+// (included above) FlashEffect now defined in gpu/effects/flash_effect.h
+// (included above)
// Auto-generated functions
void LoadTimeline(MainSequence& main_seq, const GpuContext& ctx);