diff --git a/packages/core/src/renderers/Renderer.js b/packages/core/src/renderers/Renderer.js index 89ce25f..ed30b16 100644 --- a/packages/core/src/renderers/Renderer.js +++ b/packages/core/src/renderers/Renderer.js @@ -12,7 +12,7 @@ import ShaderSystem from './systems/shader/ShaderSystem'; import ContextSystem from './systems/ContextSystem'; import BatchSystem from './systems/BatchSystem'; -// import TextureGCSystem from './systems/textures/TextureGCSystem'; +import TextureGCSystem from './systems/textures/TextureGCSystem'; import { RENDERER_TYPE } from '@pixi/constants'; import UniformGroup from '../shader/UniformGroup'; import { Matrix } from '@pixi/math'; @@ -102,7 +102,7 @@ .addSystem(FramebufferSystem, 'framebuffer') .addSystem(StencilSystem, 'stencil') .addSystem(ProjectionSystem, 'projection') - // .addSystem(TextureGCSystem) + .addSystem(TextureGCSystem, 'textureGC') // .addSystem(FilterSystem, 'filter') .addSystem(RenderTextureSystem, 'renderTexture') .addSystem(BatchSystem, 'batch'); diff --git a/packages/core/src/renderers/Renderer.js b/packages/core/src/renderers/Renderer.js index 89ce25f..ed30b16 100644 --- a/packages/core/src/renderers/Renderer.js +++ b/packages/core/src/renderers/Renderer.js @@ -12,7 +12,7 @@ import ShaderSystem from './systems/shader/ShaderSystem'; import ContextSystem from './systems/ContextSystem'; import BatchSystem from './systems/BatchSystem'; -// import TextureGCSystem from './systems/textures/TextureGCSystem'; +import TextureGCSystem from './systems/textures/TextureGCSystem'; import { RENDERER_TYPE } from '@pixi/constants'; import UniformGroup from '../shader/UniformGroup'; import { Matrix } from '@pixi/math'; @@ -102,7 +102,7 @@ .addSystem(FramebufferSystem, 'framebuffer') .addSystem(StencilSystem, 'stencil') .addSystem(ProjectionSystem, 'projection') - // .addSystem(TextureGCSystem) + .addSystem(TextureGCSystem, 'textureGC') // .addSystem(FilterSystem, 'filter') .addSystem(RenderTextureSystem, 'renderTexture') .addSystem(BatchSystem, 'batch'); diff --git a/packages/core/src/renderers/systems/textures/TextureGCSystem.js b/packages/core/src/renderers/systems/textures/TextureGCSystem.js index 6b306cb..b089938 100644 --- a/packages/core/src/renderers/systems/textures/TextureGCSystem.js +++ b/packages/core/src/renderers/systems/textures/TextureGCSystem.js @@ -99,7 +99,7 @@ // only destroy non generated textures if (displayObject._texture && displayObject._texture._glRenderTargets) { - tm.destroyTexture(displayObject._texture, true); + tm.destroyTexture(displayObject._texture); } for (let i = displayObject.children.length - 1; i >= 0; i--) diff --git a/packages/core/src/renderers/Renderer.js b/packages/core/src/renderers/Renderer.js index 89ce25f..ed30b16 100644 --- a/packages/core/src/renderers/Renderer.js +++ b/packages/core/src/renderers/Renderer.js @@ -12,7 +12,7 @@ import ShaderSystem from './systems/shader/ShaderSystem'; import ContextSystem from './systems/ContextSystem'; import BatchSystem from './systems/BatchSystem'; -// import TextureGCSystem from './systems/textures/TextureGCSystem'; +import TextureGCSystem from './systems/textures/TextureGCSystem'; import { RENDERER_TYPE } from '@pixi/constants'; import UniformGroup from '../shader/UniformGroup'; import { Matrix } from '@pixi/math'; @@ -102,7 +102,7 @@ .addSystem(FramebufferSystem, 'framebuffer') .addSystem(StencilSystem, 'stencil') .addSystem(ProjectionSystem, 'projection') - // .addSystem(TextureGCSystem) + .addSystem(TextureGCSystem, 'textureGC') // .addSystem(FilterSystem, 'filter') .addSystem(RenderTextureSystem, 'renderTexture') .addSystem(BatchSystem, 'batch'); diff --git a/packages/core/src/renderers/systems/textures/TextureGCSystem.js b/packages/core/src/renderers/systems/textures/TextureGCSystem.js index 6b306cb..b089938 100644 --- a/packages/core/src/renderers/systems/textures/TextureGCSystem.js +++ b/packages/core/src/renderers/systems/textures/TextureGCSystem.js @@ -99,7 +99,7 @@ // only destroy non generated textures if (displayObject._texture && displayObject._texture._glRenderTargets) { - tm.destroyTexture(displayObject._texture, true); + tm.destroyTexture(displayObject._texture); } for (let i = displayObject.children.length - 1; i >= 0; i--) diff --git a/packages/core/src/renderers/systems/textures/TextureSystem.js b/packages/core/src/renderers/systems/textures/TextureSystem.js index e4d108a..ccc5de9 100644 --- a/packages/core/src/renderers/systems/textures/TextureSystem.js +++ b/packages/core/src/renderers/systems/textures/TextureSystem.js @@ -100,6 +100,8 @@ if (texture.valid) { + texture.touched = this.renderer.textureGC.count; + const glTexture = texture._glTextures[this.CONTEXT_UID] || this.initTexture(texture); gl.bindTexture(texture.target, glTexture.texture); @@ -212,7 +214,7 @@ { this.unbind(texture); - gl.destroyTexture(texture._glTextures[this.renderer.CONTEXT_UID].texture); + gl.deleteTexture(texture._glTextures[this.renderer.CONTEXT_UID].texture); texture.off('dispose', this.destroyTexture, this); delete texture._glTextures[this.renderer.CONTEXT_UID]; diff --git a/packages/core/src/renderers/Renderer.js b/packages/core/src/renderers/Renderer.js index 89ce25f..ed30b16 100644 --- a/packages/core/src/renderers/Renderer.js +++ b/packages/core/src/renderers/Renderer.js @@ -12,7 +12,7 @@ import ShaderSystem from './systems/shader/ShaderSystem'; import ContextSystem from './systems/ContextSystem'; import BatchSystem from './systems/BatchSystem'; -// import TextureGCSystem from './systems/textures/TextureGCSystem'; +import TextureGCSystem from './systems/textures/TextureGCSystem'; import { RENDERER_TYPE } from '@pixi/constants'; import UniformGroup from '../shader/UniformGroup'; import { Matrix } from '@pixi/math'; @@ -102,7 +102,7 @@ .addSystem(FramebufferSystem, 'framebuffer') .addSystem(StencilSystem, 'stencil') .addSystem(ProjectionSystem, 'projection') - // .addSystem(TextureGCSystem) + .addSystem(TextureGCSystem, 'textureGC') // .addSystem(FilterSystem, 'filter') .addSystem(RenderTextureSystem, 'renderTexture') .addSystem(BatchSystem, 'batch'); diff --git a/packages/core/src/renderers/systems/textures/TextureGCSystem.js b/packages/core/src/renderers/systems/textures/TextureGCSystem.js index 6b306cb..b089938 100644 --- a/packages/core/src/renderers/systems/textures/TextureGCSystem.js +++ b/packages/core/src/renderers/systems/textures/TextureGCSystem.js @@ -99,7 +99,7 @@ // only destroy non generated textures if (displayObject._texture && displayObject._texture._glRenderTargets) { - tm.destroyTexture(displayObject._texture, true); + tm.destroyTexture(displayObject._texture); } for (let i = displayObject.children.length - 1; i >= 0; i--) diff --git a/packages/core/src/renderers/systems/textures/TextureSystem.js b/packages/core/src/renderers/systems/textures/TextureSystem.js index e4d108a..ccc5de9 100644 --- a/packages/core/src/renderers/systems/textures/TextureSystem.js +++ b/packages/core/src/renderers/systems/textures/TextureSystem.js @@ -100,6 +100,8 @@ if (texture.valid) { + texture.touched = this.renderer.textureGC.count; + const glTexture = texture._glTextures[this.CONTEXT_UID] || this.initTexture(texture); gl.bindTexture(texture.target, glTexture.texture); @@ -212,7 +214,7 @@ { this.unbind(texture); - gl.destroyTexture(texture._glTextures[this.renderer.CONTEXT_UID].texture); + gl.deleteTexture(texture._glTextures[this.renderer.CONTEXT_UID].texture); texture.off('dispose', this.destroyTexture, this); delete texture._glTextures[this.renderer.CONTEXT_UID]; diff --git a/packages/sprite/src/SpriteRenderer.js b/packages/sprite/src/SpriteRenderer.js index 39e644a..6ed9cb6 100644 --- a/packages/sprite/src/SpriteRenderer.js +++ b/packages/sprite/src/SpriteRenderer.js @@ -198,7 +198,7 @@ const float32View = buffer.float32View; const uint32View = buffer.uint32View; - // const touch = 0;// this.renderer.textureGC.count; + const touch = this.renderer.textureGC.count; let index = 0; let nextTexture; @@ -262,6 +262,7 @@ currentGroup.start = i; } + nextTexture.touched = touch; nextTexture._enabled = TICK; nextTexture._id = textureCount;