Skip to content

Commit 5617f2b

Browse files
committed
forgot to commit code
1 parent bf366d2 commit 5617f2b

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

packages/gl-react/src/Node.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,10 @@ export default class Node extends Component {
596596
// We should only dispose() if gl is still here.
597597
// otherwise, GL should already have free resources.
598598
// (also workaround for https://github.com/stackgl/headless-gl/issues/90)
599-
const { framebuffer, backbuffer } = this;
599+
const { framebuffer, backbuffer, _shader } = this;
600+
if (_shader) {
601+
_shader.dispose();
602+
}
600603
if (framebuffer) {
601604
framebuffer.dispose();
602605
}
@@ -707,7 +710,7 @@ export default class Node extends Component {
707710
}
708711

709712
_latestShaderInfo: ?ShaderInfo;
710-
_shader: ?Shader;
713+
_shader: ?Shader; // in case of inline shader, a Node currently hold a Node
711714

712715
_getShader(shaderProp: mixed): Shader {
713716
const { glSurface } = this.context;
@@ -728,6 +731,10 @@ export default class Node extends Component {
728731
!latestShaderInfo ||
729732
!shaderInfoEquals(latestShaderInfo, shaderInfo)
730733
) {
734+
if (shader) {
735+
shader.dispose();
736+
delete this._shader;
737+
}
731738
shader = glSurface._makeShader(shaderInfo);
732739
this._latestShaderInfo = shaderInfo;
733740
this._shader = shader;

0 commit comments

Comments
 (0)