summaryrefslogtreecommitdiff
path: root/src/gpu/effect.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-01 00:58:20 +0100
committerskal <pascal.massimino@gmail.com>2026-02-01 01:13:53 +0100
commit18eb8a07ba39a8aad1c75521cee027b9c9c72e40 (patch)
tree87e498dbaffdd591eb94fddca315f6ba28756a32 /src/gpu/effect.cc
parent03cd94817097e59a0809b222e0e1e74dd9a8ede7 (diff)
clang-format
Diffstat (limited to 'src/gpu/effect.cc')
-rw-r--r--src/gpu/effect.cc75
1 files changed, 42 insertions, 33 deletions
diff --git a/src/gpu/effect.cc b/src/gpu/effect.cc
index 86390a9..64bd053 100644
--- a/src/gpu/effect.cc
+++ b/src/gpu/effect.cc
@@ -19,8 +19,8 @@ void PostProcessEffect::render(WGPURenderPassEncoder pass, float, float, float,
}
// --- Sequence Implementation ---
-void Sequence::init(MainSequence *demo) {
- for (auto &item : items_) {
+void Sequence::init(MainSequence* demo) {
+ for (SequenceItem& item : items_) {
if (!item.effect->is_initialized) {
item.effect->init(demo);
item.effect->is_initialized = true;
@@ -35,16 +35,17 @@ void Sequence::add_effect(std::shared_ptr<Effect> effect, float start_time,
}
void Sequence::sort_items() {
- if (is_sorted_) return;
+ if (is_sorted_)
+ return;
std::sort(items_.begin(), items_.end(),
- [](const SequenceItem &a, const SequenceItem &b) {
+ [](const SequenceItem& a, const SequenceItem& b) {
return a.priority < b.priority;
});
is_sorted_ = true;
}
void Sequence::update_active_list(float seq_time) {
- for (auto &item : items_) {
+ for (SequenceItem& item : items_) {
bool should_be_active =
(seq_time >= item.start_time && seq_time < item.end_time);
@@ -59,10 +60,10 @@ void Sequence::update_active_list(float seq_time) {
}
void Sequence::collect_active_effects(
- std::vector<SequenceItem *> &scene_effects,
- std::vector<SequenceItem *> &post_effects) {
+ std::vector<SequenceItem*>& scene_effects,
+ std::vector<SequenceItem*>& post_effects) {
sort_items();
- for (auto &item : items_) {
+ for (SequenceItem& item : items_) {
if (item.active) {
if (item.effect->is_post_process()) {
post_effects.push_back(&item);
@@ -74,7 +75,7 @@ void Sequence::collect_active_effects(
}
void Sequence::reset() {
- for (auto &item : items_) {
+ for (SequenceItem& item : items_) {
if (item.active) {
item.effect->end();
item.active = false;
@@ -129,14 +130,16 @@ void MainSequence::init(WGPUDevice d, WGPUQueue q, WGPUTextureFormat f,
create_framebuffers(width, height);
passthrough_effect_ = std::make_unique<PassthroughEffect>(device, format);
- for (auto &entry : sequences_) { entry.seq->init(this); }
+ for (ActiveSequence& entry : sequences_) {
+ entry.seq->init(this);
+ }
}
void MainSequence::add_sequence(std::shared_ptr<Sequence> seq, float start_time,
int priority) {
sequences_.push_back({seq, start_time, priority});
std::sort(sequences_.begin(), sequences_.end(),
- [](const ActiveSequence &a, const ActiveSequence &b) {
+ [](const ActiveSequence& a, const ActiveSequence& b) {
return a.priority < b.priority;
});
}
@@ -145,9 +148,9 @@ void MainSequence::render_frame(float global_time, float beat, float peak,
float aspect_ratio, WGPUSurface surface) {
WGPUCommandEncoder encoder = wgpuDeviceCreateCommandEncoder(device, nullptr);
- std::vector<SequenceItem *> scene_effects;
- std::vector<SequenceItem *> post_effects;
- for (auto &entry : sequences_) {
+ std::vector<SequenceItem*> scene_effects;
+ std::vector<SequenceItem*> post_effects;
+ for (ActiveSequence& entry : sequences_) {
if (global_time >= entry.start_time) {
float seq_time = global_time - entry.start_time;
entry.seq->update_active_list(seq_time);
@@ -155,16 +158,16 @@ void MainSequence::render_frame(float global_time, float beat, float peak,
}
}
std::sort(scene_effects.begin(), scene_effects.end(),
- [](const SequenceItem *a, const SequenceItem *b) {
+ [](const SequenceItem* a, const SequenceItem* b) {
return a->priority < b->priority;
});
std::sort(post_effects.begin(), post_effects.end(),
- [](const SequenceItem *a, const SequenceItem *b) {
+ [](const SequenceItem* a, const SequenceItem* b) {
return a->priority < b->priority;
});
// 1. Compute
- for (const auto &item : scene_effects) {
+ for (const SequenceItem* item : scene_effects) {
item->effect->compute(encoder, global_time - item->start_time, beat, peak,
aspect_ratio);
}
@@ -178,12 +181,12 @@ void MainSequence::render_frame(float global_time, float beat, float peak,
scene_attachment.clearValue = {0, 0, 0, 1};
#if !defined(DEMO_CROSS_COMPILE_WIN32)
scene_attachment.depthSlice = WGPU_DEPTH_SLICE_UNDEFINED;
-#endif
+#endif /* !defined(DEMO_CROSS_COMPILE_WIN32) */
WGPURenderPassDescriptor scene_desc = {.colorAttachmentCount = 1,
.colorAttachments = &scene_attachment};
WGPURenderPassEncoder scene_pass =
wgpuCommandEncoderBeginRenderPass(encoder, &scene_desc);
- for (const auto &item : scene_effects) {
+ for (const SequenceItem* item : scene_effects) {
item->effect->render(scene_pass, global_time - item->start_time, beat, peak,
aspect_ratio);
}
@@ -205,7 +208,7 @@ void MainSequence::render_frame(float global_time, float beat, float peak,
final_attachment.storeOp = WGPUStoreOp_Store;
#if !defined(DEMO_CROSS_COMPILE_WIN32)
final_attachment.depthSlice = WGPU_DEPTH_SLICE_UNDEFINED;
-#endif
+#endif /* !defined(DEMO_CROSS_COMPILE_WIN32) */
WGPURenderPassDescriptor final_desc = {
.colorAttachmentCount = 1, .colorAttachments = &final_attachment};
WGPURenderPassEncoder final_pass =
@@ -228,8 +231,8 @@ void MainSequence::render_frame(float global_time, float beat, float peak,
: framebuffer_view_a_);
}
- PostProcessEffect *pp =
- static_cast<PostProcessEffect *>(post_effects[i]->effect.get());
+ PostProcessEffect* pp =
+ (PostProcessEffect*)(post_effects[i]->effect.get());
pp->update_bind_group(current_input);
WGPURenderPassColorAttachment pp_attachment = {};
@@ -239,7 +242,7 @@ void MainSequence::render_frame(float global_time, float beat, float peak,
pp_attachment.storeOp = WGPUStoreOp_Store;
#if !defined(DEMO_CROSS_COMPILE_WIN32)
pp_attachment.depthSlice = WGPU_DEPTH_SLICE_UNDEFINED;
-#endif
+#endif /* !defined(DEMO_CROSS_COMPILE_WIN32) */
WGPURenderPassDescriptor pp_desc = {.colorAttachmentCount = 1,
.colorAttachments = &pp_attachment};
WGPURenderPassEncoder pp_pass =
@@ -262,14 +265,20 @@ void MainSequence::render_frame(float global_time, float beat, float peak,
}
void MainSequence::shutdown() {
- if (framebuffer_view_a_) wgpuTextureViewRelease(framebuffer_view_a_);
- if (framebuffer_a_) wgpuTextureRelease(framebuffer_a_);
- if (framebuffer_view_b_) wgpuTextureViewRelease(framebuffer_view_b_);
- if (framebuffer_b_) wgpuTextureRelease(framebuffer_b_);
- for (auto &entry : sequences_) { entry.seq->reset(); }
+ if (framebuffer_view_a_)
+ wgpuTextureViewRelease(framebuffer_view_a_);
+ if (framebuffer_a_)
+ wgpuTextureRelease(framebuffer_a_);
+ if (framebuffer_view_b_)
+ wgpuTextureViewRelease(framebuffer_view_b_);
+ if (framebuffer_b_)
+ wgpuTextureRelease(framebuffer_b_);
+ for (ActiveSequence& entry : sequences_) {
+ entry.seq->reset();
+ }
}
-#ifndef STRIP_ALL
+#if !defined(STRIP_ALL)
void MainSequence::simulate_until(float target_time, float step_rate) {
const float bpm = 128.0f;
const float aspect_ratio = 16.0f / 9.0f;
@@ -277,14 +286,14 @@ void MainSequence::simulate_until(float target_time, float step_rate) {
WGPUCommandEncoder encoder =
wgpuDeviceCreateCommandEncoder(device, nullptr);
float beat = fmodf(t * bpm / 60.0f, 1.0f);
- std::vector<SequenceItem *> scene_effects, post_effects;
- for (auto &entry : sequences_) {
+ std::vector<SequenceItem*> scene_effects, post_effects;
+ for (ActiveSequence& entry : sequences_) {
if (t >= entry.start_time) {
entry.seq->update_active_list(t - entry.start_time);
entry.seq->collect_active_effects(scene_effects, post_effects);
}
}
- for (const auto &item : scene_effects) {
+ for (const SequenceItem* item : scene_effects) {
item->effect->compute(encoder, t - item->start_time, beat, 0.0f,
aspect_ratio);
}
@@ -292,4 +301,4 @@ void MainSequence::simulate_until(float target_time, float step_rate) {
wgpuQueueSubmit(queue, 1, &commands);
}
}
-#endif
+#endif /* !defined(STRIP_ALL) */