From 2e2e01048da5c466102bb57d64148aff72f4a558 Mon Sep 17 00:00:00 2001 From: skal Date: Tue, 17 Feb 2026 12:51:29 +0100 Subject: 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 --- src/gpu/effect.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/gpu/effect.cc') 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); } -- cgit v1.2.3