diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-11 12:01:08 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-11 12:01:08 +0100 |
| commit | 3159f625ece457fd0859939f61485090d5d99693 (patch) | |
| tree | 8daba03cf27d81dc5f34a5165499153918f0c2a5 /src/gpu/effects | |
| parent | 5ceb0256792053ee80841f2b5ac0dfae1fd4c6f8 (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.cc | 3 | ||||
| -rw-r--r-- | src/gpu/effects/flash_cube_effect.h | 1 | ||||
| -rw-r--r-- | src/gpu/effects/hybrid_3d_effect.cc | 3 | ||||
| -rw-r--r-- | src/gpu/effects/hybrid_3d_effect.h | 1 |
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; }; |
