diff --git a/src/core/Stage.ts b/src/core/Stage.ts index 7df38473..f2cbc6df 100644 --- a/src/core/Stage.ts +++ b/src/core/Stage.ts @@ -888,8 +888,8 @@ export class Stage { * @remarks * This method is used to cleanup orphaned textures that are no longer in use. */ - cleanup() { - this.txMemManager.cleanup(); + cleanup(full: boolean = false) { + this.txMemManager.cleanup(full); } set clearColor(value: number) { diff --git a/src/core/TextureMemoryManager.ts b/src/core/TextureMemoryManager.ts index 33e1f106..159210b0 100644 --- a/src/core/TextureMemoryManager.ts +++ b/src/core/TextureMemoryManager.ts @@ -253,7 +253,7 @@ export class TextureMemoryManager { texture.memUsed = 0; } - cleanup() { + cleanup(full: boolean = false) { const critical = this.criticalCleanupRequested; this.lastCleanupTime = this.frameTime; @@ -266,7 +266,7 @@ export class TextureMemoryManager { if (this.debugLogging === true) { console.log( - `[TextureMemoryManager] Cleaning up textures. Critical: ${critical}.`, + `[TextureMemoryManager] Cleaning up textures. Critical: ${critical}. Full: ${full}`, ); } @@ -279,7 +279,7 @@ export class TextureMemoryManager { for (let i = 0; i < this.loadedTextures.length; i++) { // Early exit: target memory reached - if (currentMemUsed < memTarget) { + if (full === false && currentMemUsed < memTarget) { break; }