diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-07 17:04:56 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-07 17:04:56 +0100 |
| commit | bd939acdf750181ef0e1a612b445da4c15077c85 (patch) | |
| tree | 028401c762b0436d9a5de1aa656ab35ba6445674 /src/gpu/demo_effects.h | |
| parent | f2963ac821a3af1c54002ba13944552166956d04 (diff) | |
refactor: Bundle GPU context into GpuContext struct
- Created GpuContext struct {device, queue, format}
- Updated Effect/PostProcessEffect to take const GpuContext&
- Updated all 19 effect implementations
- Updated MainSequence.init() and LoadTimeline() signatures
- Updated generated timeline files
- Updated all test files
- Added gpu_get_context() accessor and fixture.ctx() helper
Fixes test_mesh.cc compilation error from g_device/g_queue/g_format conflicts.
All targets build successfully.
Diffstat (limited to 'src/gpu/demo_effects.h')
| -rw-r--r-- | src/gpu/demo_effects.h | 37 |
1 files changed, 15 insertions, 22 deletions
diff --git a/src/gpu/demo_effects.h b/src/gpu/demo_effects.h index 4b96ba7..cddd04b 100644 --- a/src/gpu/demo_effects.h +++ b/src/gpu/demo_effects.h @@ -23,7 +23,7 @@ struct Particle { class HeptagonEffect : public Effect { public: - HeptagonEffect(WGPUDevice device, WGPUQueue queue, WGPUTextureFormat format); + HeptagonEffect(const GpuContext& ctx); void render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) override; @@ -33,7 +33,7 @@ class HeptagonEffect : public Effect { class ParticlesEffect : public Effect { public: - ParticlesEffect(WGPUDevice device, WGPUQueue queue, WGPUTextureFormat format); + ParticlesEffect(const GpuContext& ctx); void compute(WGPUCommandEncoder encoder, float time, float beat, float intensity, float aspect_ratio) override; void render(WGPURenderPassEncoder pass, float time, float beat, @@ -47,15 +47,13 @@ class ParticlesEffect : public Effect { class PassthroughEffect : public PostProcessEffect { public: - PassthroughEffect(WGPUDevice device, WGPUQueue queue, - WGPUTextureFormat format); + PassthroughEffect(const GpuContext& ctx); void update_bind_group(WGPUTextureView input_view) override; }; class MovingEllipseEffect : public Effect { public: - MovingEllipseEffect(WGPUDevice device, WGPUQueue queue, - WGPUTextureFormat format); + MovingEllipseEffect(const GpuContext& ctx); void render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) override; @@ -65,8 +63,7 @@ class MovingEllipseEffect : public Effect { class ParticleSprayEffect : public Effect { public: - ParticleSprayEffect(WGPUDevice device, WGPUQueue queue, - WGPUTextureFormat format); + ParticleSprayEffect(const GpuContext& ctx); void compute(WGPUCommandEncoder encoder, float time, float beat, float intensity, float aspect_ratio) override; void render(WGPURenderPassEncoder pass, float time, float beat, @@ -80,8 +77,7 @@ class ParticleSprayEffect : public Effect { class GaussianBlurEffect : public PostProcessEffect { public: - GaussianBlurEffect(WGPUDevice device, WGPUQueue queue, - WGPUTextureFormat format); + GaussianBlurEffect(const GpuContext& ctx); void render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) override; void update_bind_group(WGPUTextureView input_view) override; @@ -89,7 +85,7 @@ class GaussianBlurEffect : public PostProcessEffect { class SolarizeEffect : public PostProcessEffect { public: - SolarizeEffect(WGPUDevice device, WGPUQueue queue, WGPUTextureFormat format); + SolarizeEffect(const GpuContext& ctx); void render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) override; void update_bind_group(WGPUTextureView input_view) override; @@ -97,7 +93,7 @@ class SolarizeEffect : public PostProcessEffect { class DistortEffect : public PostProcessEffect { public: - DistortEffect(WGPUDevice device, WGPUQueue queue, WGPUTextureFormat format); + DistortEffect(const GpuContext& ctx); void render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) override; void update_bind_group(WGPUTextureView input_view) override; @@ -105,8 +101,7 @@ class DistortEffect : public PostProcessEffect { class ChromaAberrationEffect : public PostProcessEffect { public: - ChromaAberrationEffect(WGPUDevice device, WGPUQueue queue, - WGPUTextureFormat format); + ChromaAberrationEffect(const GpuContext& ctx); void render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) override; void update_bind_group(WGPUTextureView input_view) override; @@ -114,7 +109,7 @@ class ChromaAberrationEffect : public PostProcessEffect { class Hybrid3DEffect : public Effect { public: - Hybrid3DEffect(WGPUDevice device, WGPUQueue queue, WGPUTextureFormat format); + Hybrid3DEffect(const GpuContext& ctx); void init(MainSequence* demo) override; void render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) override; @@ -130,7 +125,7 @@ class Hybrid3DEffect : public Effect { class FlashCubeEffect : public Effect { public: - FlashCubeEffect(WGPUDevice device, WGPUQueue queue, WGPUTextureFormat format); + FlashCubeEffect(const GpuContext& ctx); void init(MainSequence* demo) override; void resize(int width, int height) override; void render(WGPURenderPassEncoder pass, float time, float beat, @@ -149,8 +144,7 @@ class FlashCubeEffect : public Effect { class ThemeModulationEffect : public PostProcessEffect { public: - ThemeModulationEffect(WGPUDevice device, WGPUQueue queue, - WGPUTextureFormat format); + ThemeModulationEffect(const GpuContext& ctx); void render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) override; void update_bind_group(WGPUTextureView input_view) override; @@ -158,7 +152,7 @@ class ThemeModulationEffect : public PostProcessEffect { class FadeEffect : public PostProcessEffect { public: - FadeEffect(WGPUDevice device, WGPUQueue queue, WGPUTextureFormat format); + FadeEffect(const GpuContext& ctx); void render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) override; void update_bind_group(WGPUTextureView input_view) override; @@ -166,7 +160,7 @@ class FadeEffect : public PostProcessEffect { class FlashEffect : public PostProcessEffect { public: - FlashEffect(WGPUDevice device, WGPUQueue queue, WGPUTextureFormat format); + FlashEffect(const GpuContext& ctx); void render(WGPURenderPassEncoder pass, float time, float beat, float intensity, float aspect_ratio) override; void update_bind_group(WGPUTextureView input_view) override; @@ -176,7 +170,6 @@ class FlashEffect : public PostProcessEffect { }; // Auto-generated functions -void LoadTimeline(MainSequence& main_seq, WGPUDevice device, WGPUQueue queue, - WGPUTextureFormat format); +void LoadTimeline(MainSequence& main_seq, const GpuContext& ctx); float GetDemoDuration(); // Returns demo end time in seconds, or -1 if not // specified
\ No newline at end of file |
