summaryrefslogtreecommitdiff
path: root/src/effects/hybrid3_d_effect.cc
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-16 15:16:56 +0100
committerskal <pascal.massimino@gmail.com>2026-02-16 15:16:56 +0100
commit80d395b8bc0c37778401eb771094c25db7a1b8a4 (patch)
tree87d399e226e64f2504b09d839f0068b117236a9f /src/effects/hybrid3_d_effect.cc
parent42de5c4e5aeb486b4afb5b73bcb6a9d5ba567cbd (diff)
fix(headless): add early returns to all effect constructors
All effects now skip GPU resource creation when device is nullptr. Effects fixed: - GaussianBlurEffect - HeptagonEffect - Hybrid3DEffect - PassthroughEffect - ParticlesEffect Headless tests now passing (audio-only mode functional). Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/effects/hybrid3_d_effect.cc')
-rw-r--r--src/effects/hybrid3_d_effect.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/effects/hybrid3_d_effect.cc b/src/effects/hybrid3_d_effect.cc
index ced5b42..2a015a0 100644
--- a/src/effects/hybrid3_d_effect.cc
+++ b/src/effects/hybrid3_d_effect.cc
@@ -10,6 +10,11 @@ Hybrid3DEffect::Hybrid3DEffect(const GpuContext& ctx,
const std::vector<std::string>& outputs)
: Effect(ctx, inputs, outputs), depth_node_(outputs[0] + "_depth"),
dummy_texture_(nullptr), dummy_texture_view_(nullptr) {
+ // Headless mode: skip GPU resource creation
+ if (ctx_.device == nullptr) {
+ return;
+ }
+
// Initialize renderer (format is always RGBA8Unorm for v2)
renderer_.init(ctx_.device, ctx_.queue, WGPUTextureFormat_RGBA8Unorm);