// This file is part of the 64k demo project. // It declares the ParticlesEffectV2. #pragma once #include "gpu/effect_v2.h" #include "gpu/gpu.h" #include "gpu/uniform_helper.h" #include // Particle structure static const int NUM_PARTICLES = 10000; struct Particle { float pos[4]; float vel[4]; float rot[4]; float color[4]; }; class ParticlesEffectV2 : public EffectV2 { public: ParticlesEffectV2(const GpuContext& ctx, const std::vector& inputs, const std::vector& outputs); void render(WGPUCommandEncoder encoder, const UniformsSequenceParams& params, NodeRegistry& nodes) override; private: ComputePass compute_pass_; RenderPass render_pass_; GpuBuffer particles_buffer_; UniformBuffer uniforms_; };