|
@@ -624,6 +624,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
if ( geometry[ name ] !== undefined ) {
|
|
|
|
|
|
_gl.deleteBuffer( geometry[ name ] );
|
|
|
+
|
|
|
delete geometry[ name ];
|
|
|
|
|
|
}
|
|
@@ -661,6 +662,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
if ( attribute.buffer !== undefined ) {
|
|
|
|
|
|
_gl.deleteBuffer( attribute.buffer );
|
|
|
+
|
|
|
delete attribute.buffer;
|
|
|
|
|
|
}
|
|
@@ -685,6 +687,8 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ delete geometryGroup.__webglMorphTargetsBuffers;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
if ( geometryGroup.numMorphNormals !== undefined ) {
|
|
@@ -695,6 +699,8 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ delete geometryGroup.__webglMorphNormalsBuffers;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
deleteBuffers( geometryGroup );
|
|
@@ -723,25 +729,31 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
_gl.deleteTexture( texture.image.__webglTextureCube );
|
|
|
|
|
|
+ delete texture.image.__webglTextureCube;
|
|
|
+
|
|
|
} else {
|
|
|
|
|
|
// 2D texture
|
|
|
|
|
|
- if ( ! texture.__webglInit ) return;
|
|
|
+ if ( texture.__webglInit === undefined ) return;
|
|
|
|
|
|
- texture.__webglInit = false;
|
|
|
_gl.deleteTexture( texture.__webglTexture );
|
|
|
|
|
|
+ delete texture.__webglTexture;
|
|
|
+ delete texture.__webglInit;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
var deallocateRenderTarget = function ( renderTarget ) {
|
|
|
|
|
|
- if ( ! renderTarget || ! renderTarget.__webglTexture ) return;
|
|
|
+ if ( ! renderTarget || renderTarget.__webglTexture === undefined ) return;
|
|
|
|
|
|
_gl.deleteTexture( renderTarget.__webglTexture );
|
|
|
|
|
|
+ delete renderTarget.__webglTexture;
|
|
|
+
|
|
|
if ( renderTarget instanceof THREE.WebGLRenderTargetCube ) {
|
|
|
|
|
|
for ( var i = 0; i < 6; i ++ ) {
|
|
@@ -758,6 +770,9 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ delete renderTarget.__webglFramebuffer;
|
|
|
+ delete renderTarget.__webglRenderbuffer;
|
|
|
+
|
|
|
};
|
|
|
|
|
|
var deallocateMaterial = function ( material ) {
|
|
@@ -5573,7 +5588,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
this.uploadTexture = function ( texture ) {
|
|
|
|
|
|
- if ( ! texture.__webglInit ) {
|
|
|
+ if ( texture.__webglInit === undefined ) {
|
|
|
|
|
|
texture.__webglInit = true;
|
|
|
|
|
@@ -5838,14 +5853,14 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
|
|
|
|
- };
|
|
|
+ }
|
|
|
|
|
|
function setCubeTextureDynamic ( texture, slot ) {
|
|
|
|
|
|
_gl.activeTexture( _gl.TEXTURE0 + slot );
|
|
|
_gl.bindTexture( _gl.TEXTURE_CUBE_MAP, texture.__webglTexture );
|
|
|
|
|
|
- };
|
|
|
+ }
|
|
|
|
|
|
// Render targets
|
|
|
|
|
@@ -5854,7 +5869,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
_gl.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );
|
|
|
_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, textureTarget, renderTarget.__webglTexture, 0 );
|
|
|
|
|
|
- };
|
|
|
+ }
|
|
|
|
|
|
function setupRenderBuffer ( renderbuffer, renderTarget ) {
|
|
|
|
|
@@ -5882,13 +5897,13 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
}
|
|
|
|
|
|
- };
|
|
|
+ }
|
|
|
|
|
|
this.setRenderTarget = function ( renderTarget ) {
|
|
|
|
|
|
var isCube = ( renderTarget instanceof THREE.WebGLRenderTargetCube );
|
|
|
|
|
|
- if ( renderTarget && ! renderTarget.__webglFramebuffer ) {
|
|
|
+ if ( renderTarget && renderTarget.__webglFramebuffer === undefined ) {
|
|
|
|
|
|
if ( renderTarget.depthBuffer === undefined ) renderTarget.depthBuffer = true;
|
|
|
if ( renderTarget.stencilBuffer === undefined ) renderTarget.stencilBuffer = true;
|