refactor(app): retire logo textures through the deferred-destroy queue
ensureLogoTexture() still freed the chat emoji, header logo and coin logo textures it replaced at once, while every other theme-driven replacement already goes through retireTexture() and is freed at the next preFrame(). It runs at the top of render(), so nothing referenced them yet; this is hygiene, so that the same rule covers every replaced texture. - ensureLogoTexture(): the three direct DestroyTexture() calls become retireTexture(). Cost: the old textures live one extra frame on a theme or accent change. - setGradientTexture() (unused today) retires the texture it replaces instead of dropping it. - No drain at shutdown: the process exits and the live logo and gradient textures are not freed at exit either. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -690,8 +690,8 @@ public:
|
||||
// Diagnostic string describing daemon memory detection path (for debugging)
|
||||
const std::string& getDaemonMemDiag() const { return daemon_mem_diag_; }
|
||||
|
||||
// Background gradient overlay texture
|
||||
void setGradientTexture(ImTextureID tex) { gradient_tex_ = tex; }
|
||||
// Background gradient overlay texture (a replaced texture is retired, freed at the next preFrame())
|
||||
void setGradientTexture(ImTextureID tex) { if (tex != gradient_tex_) retireTexture(gradient_tex_); gradient_tex_ = tex; }
|
||||
ImTextureID getGradientTexture() const { return gradient_tex_; }
|
||||
|
||||
// Logo texture accessor (wallet branding icon)
|
||||
|
||||
Reference in New Issue
Block a user