diff --git a/src/ui/effects/scroll_fade_shader.h b/src/ui/effects/scroll_fade_shader.h index fdc8ea3..f6c162c 100644 --- a/src/ui/effects/scroll_fade_shader.h +++ b/src/ui/effects/scroll_fade_shader.h @@ -49,6 +49,7 @@ struct ScrollFadeShader { // ---- Internal state ---- bool ready = false; + bool failed = false; // a failed init is final until destroy(): no per-frame recompiles on a rejecting driver #ifdef DRAGONX_HAS_GLAD GLuint program_ = 0; @@ -72,11 +73,16 @@ struct ScrollFadeShader { bool init() { if (ready) return true; + if (failed) return false; #ifdef DRAGONX_HAS_GLAD ready = initGL(); #elif defined(DRAGONX_USE_DX11) ready = initDX11(); #endif + if (!ready) { + failed = true; + LOGF("ScrollFadeShader: init failed, scroll-edge fades disabled\n"); // once; release builds record it + } return ready; } @@ -87,6 +93,7 @@ struct ScrollFadeShader { destroyDX11(); #endif ready = false; + failed = false; } // ----------------------------------------------------------------