// CNN v2 Effect - Parametric Static Features // Multi-pass post-processing with 7D feature input #pragma once #include "gpu/effect.h" #include class CNNv2Effect : public PostProcessEffect { public: explicit CNNv2Effect(const GpuContext& ctx); ~CNNv2Effect(); void init(MainSequence* demo) override; void resize(int width, int height) override; void render(WGPURenderPassEncoder pass, const CommonPostProcessUniforms& uniforms) override; void update_bind_group(WGPUTextureView input_view) override; private: void create_textures(); void create_pipelines(); void cleanup(); // Static features compute WGPUComputePipeline static_pipeline_; WGPUBindGroup static_bind_group_; WGPUTexture static_features_tex_; WGPUTextureView static_features_view_; // CNN layers (opaque implementation) std::vector layer_pipelines_; std::vector layer_bind_groups_; std::vector layer_textures_; std::vector layer_views_; // Input mips WGPUTexture input_mip_tex_; WGPUTextureView input_mip_view_[3]; bool initialized_; };