diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-17 12:51:29 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-17 12:51:29 +0100 |
| commit | 2e2e01048da5c466102bb57d64148aff72f4a558 (patch) | |
| tree | e88b5750395873ac9911fc4b7961f8558cc213fc /src/gpu/effect.cc | |
| parent | b3eded8d56219fa19029a1b9bb7e7e7584f093d9 (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.cc | 8 |
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); } |
