// This file is part of the 64k demo project. // It declares the ChromaAberrationEffect. #pragma once #include "gpu/effect.h" #include "gpu/uniform_helper.h" // Parameters for ChromaAberrationEffect (set at construction time) struct ChromaAberrationParams { float offset_scale = 0.02f; // Default: 2% screen offset float angle = 0.0f; // Default: horizontal (0 radians) }; class ChromaAberrationEffect : public PostProcessEffect { public: // Backward compatibility constructor (uses default params) ChromaAberrationEffect(const GpuContext& ctx); // New parameterized constructor ChromaAberrationEffect(const GpuContext& ctx, const ChromaAberrationParams& params); void render(WGPURenderPassEncoder pass, const CommonPostProcessUniforms& uniforms) override; void update_bind_group(WGPUTextureView input_view) override; private: ChromaAberrationParams params_; UniformBuffer params_buffer_; };