summaryrefslogtreecommitdiff
path: root/src/gpu/effects
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-11 12:01:08 +0100
committerskal <pascal.massimino@gmail.com>2026-02-11 12:01:08 +0100
commit3159f625ece457fd0859939f61485090d5d99693 (patch)
tree8daba03cf27d81dc5f34a5165499153918f0c2a5 /src/gpu/effects
parent5ceb0256792053ee80841f2b5ac0dfae1fd4c6f8 (diff)
fix: Use initialized_ flag instead of ctx_.device check
ctx_.device exists before init() but Renderer3D not initialized yet. Changed guard from !ctx_.device to !initialized_ flag. Set initialized_ = true after renderer_.init() in both effects. All 36 tests pass. Demo runs without crash. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/gpu/effects')
-rw-r--r--src/gpu/effects/flash_cube_effect.cc3
-rw-r--r--src/gpu/effects/flash_cube_effect.h1
-rw-r--r--src/gpu/effects/hybrid_3d_effect.cc3
-rw-r--r--src/gpu/effects/hybrid_3d_effect.h1
4 files changed, 6 insertions, 2 deletions
diff --git a/src/gpu/effects/flash_cube_effect.cc b/src/gpu/effects/flash_cube_effect.cc
index fe6b2a7..506f11c 100644
--- a/src/gpu/effects/flash_cube_effect.cc
+++ b/src/gpu/effects/flash_cube_effect.cc
@@ -17,7 +17,7 @@ void FlashCubeEffect::resize(int width, int height) {
Effect::resize(width, height);
- if (!ctx_.device)
+ if (!initialized_)
return;
renderer_.resize(width_, height_);
@@ -29,6 +29,7 @@ void FlashCubeEffect::init(MainSequence* demo) {
renderer_.init(ctx_.device, ctx_.queue, ctx_.format);
renderer_.resize(width_, height_);
+ initialized_ = true;
// Texture Manager
texture_manager_.init(ctx_.device, ctx_.queue);
diff --git a/src/gpu/effects/flash_cube_effect.h b/src/gpu/effects/flash_cube_effect.h
index 1c71164..df30b5b 100644
--- a/src/gpu/effects/flash_cube_effect.h
+++ b/src/gpu/effects/flash_cube_effect.h
@@ -24,4 +24,5 @@ class FlashCubeEffect : public Effect {
Camera camera_;
float last_beat_ = 0.0f;
float flash_intensity_ = 0.0f;
+ bool initialized_ = false;
};
diff --git a/src/gpu/effects/hybrid_3d_effect.cc b/src/gpu/effects/hybrid_3d_effect.cc
index 61b3734..a46ab4c 100644
--- a/src/gpu/effects/hybrid_3d_effect.cc
+++ b/src/gpu/effects/hybrid_3d_effect.cc
@@ -17,7 +17,7 @@ void Hybrid3DEffect::resize(int width, int height) {
Effect::resize(width, height);
- if (!ctx_.device)
+ if (!initialized_)
return;
renderer_.resize(width_, height_);
@@ -31,6 +31,7 @@ void Hybrid3DEffect::init(MainSequence* demo) {
renderer_.init(ctx_.device, ctx_.queue, ctx_.format);
renderer_.resize(width_, height_);
+ initialized_ = true;
// Texture Manager
texture_manager_.init(ctx_.device, ctx_.queue);
diff --git a/src/gpu/effects/hybrid_3d_effect.h b/src/gpu/effects/hybrid_3d_effect.h
index ea8285b..818b65c 100644
--- a/src/gpu/effects/hybrid_3d_effect.h
+++ b/src/gpu/effects/hybrid_3d_effect.h
@@ -25,4 +25,5 @@ class Hybrid3DEffect : public Effect {
TextureManager texture_manager_;
Scene scene_;
Camera camera_;
+ bool initialized_ = false;
};