summaryrefslogtreecommitdiff
path: root/src/effects/particles_effect.h
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-16 14:32:59 +0100
committerskal <pascal.massimino@gmail.com>2026-02-16 14:32:59 +0100
commitb2ede3f0680edc894a54e28374cb87ab2690afa2 (patch)
tree69e0a8c04eb29be953b037eb98e0a9ac0f1b417a /src/effects/particles_effect.h
parent0fd3c982247d05bacbd67db08c865ec67602437f (diff)
refactor: remove v2 versioning artifacts, establish Sequence as canonical system
Complete v1→v2 migration cleanup: rename 29 files (sequence_v2→sequence, effect_v2→effect, 14 effect files, 8 shaders, compiler, docs), update all class names and references across 54 files. Archive v1 timeline. System now uses standard naming with all versioning removed. 30/34 tests passing. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/effects/particles_effect.h')
-rw-r--r--src/effects/particles_effect.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/effects/particles_effect.h b/src/effects/particles_effect.h
new file mode 100644
index 0000000..76c2ef4
--- /dev/null
+++ b/src/effects/particles_effect.h
@@ -0,0 +1,36 @@
+// This file is part of the 64k demo project.
+// It declares the ParticlesEffect.
+
+#pragma once
+
+#include "gpu/effect.h"
+#include "gpu/gpu.h"
+#include "gpu/uniform_helper.h"
+#include <vector>
+
+// Particle structure
+static const int NUM_PARTICLES = 10000;
+
+struct Particle {
+ float pos[4];
+ float vel[4];
+ float rot[4];
+ float color[4];
+};
+
+class ParticlesEffect : public Effect {
+ public:
+ ParticlesEffect(const GpuContext& ctx,
+ const std::vector<std::string>& inputs,
+ const std::vector<std::string>& outputs);
+ void render(WGPUCommandEncoder encoder,
+ const UniformsSequenceParams& params,
+ NodeRegistry& nodes) override;
+
+ private:
+ ComputePass compute_pass_;
+ RenderPass render_pass_;
+ GpuBuffer particles_buffer_;
+ UniformBuffer<UniformsSequenceParams> uniforms_;
+};
+