summaryrefslogtreecommitdiff
path: root/src/gpu/effect.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-17 12:51:29 +0100
committerskal <pascal.massimino@gmail.com>2026-02-17 12:51:29 +0100
commit2e2e01048da5c466102bb57d64148aff72f4a558 (patch)
treee88b5750395873ac9911fc4b7961f8558cc213fc /src/gpu/effect.cc
parentb3eded8d56219fa19029a1b9bb7e7e7584f093d9 (diff)
refactor(gpu): Add RAII wrapper for WGPU resources to eliminate manual cleanup
Introduces WGPUResource template with automatic release on destruction. Reduces boilerplate in effect destructors and prevents resource leaks. - set() for one-time initialization - replace() for per-frame recreation - Field ordering documented for dependency management Converted 3 effects (Heptagon, Flash, Passthrough) and Effect base class. All tests pass (34/34). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/gpu/effect.cc')
-rw-r--r--src/gpu/effect.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gpu/effect.cc b/src/gpu/effect.cc
index cd4bc16..d0693ec 100644
--- a/src/gpu/effect.cc
+++ b/src/gpu/effect.cc
@@ -62,15 +62,15 @@ void Effect::init_uniforms_buffer() {
}
void Effect::create_linear_sampler() {
- sampler_ = gpu_create_linear_sampler(ctx_.device);
+ sampler_.set(gpu_create_linear_sampler(ctx_.device));
}
void Effect::create_nearest_sampler() {
- sampler_ = gpu_create_nearest_sampler(ctx_.device);
+ sampler_.set(gpu_create_nearest_sampler(ctx_.device));
}
void Effect::create_dummy_scene_texture() {
TextureWithView dummy = gpu_create_dummy_scene_texture(ctx_.device);
- dummy_texture_ = dummy.texture;
- dummy_texture_view_ = dummy.view;
+ dummy_texture_.set(dummy.texture);
+ dummy_texture_view_.set(dummy.view);
}