From c809790015b4ddc354c6b1993a633eddd042930f Mon Sep 17 00:00:00 2001 From: skal Date: Wed, 11 Feb 2026 11:46:53 +0100 Subject: refactor: Use lazy initialization for auxiliary textures Prevents init/resize ordering bug and avoids unnecessary reallocation. Changes: - Auxiliary textures created on first use (compute/update_bind_group) - Added ensure_texture() methods to defer registration until resize() - Added early return in resize() if dimensions unchanged - Removed texture registration from init() methods Benefits: - No reallocation on window resize if dimensions match - Texture created with correct dimensions from start - Memory saved if effect never renders Tests: All 36 tests passing Co-Authored-By: Claude Sonnet 4.5 --- src/gpu/effects/cnn_effect.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/gpu/effects/cnn_effect.h') diff --git a/src/gpu/effects/cnn_effect.h b/src/gpu/effects/cnn_effect.h index 1c9f0f3..f79fac7 100644 --- a/src/gpu/effects/cnn_effect.h +++ b/src/gpu/effects/cnn_effect.h @@ -35,9 +35,12 @@ class CNNEffect : public PostProcessEffect { } private: + void ensure_texture(); + int layer_index_; int total_layers_; float blend_amount_; + bool texture_initialized_ = false; WGPUTextureView input_view_; WGPUTextureView original_view_; UniformBuffer params_buffer_; -- cgit v1.2.3