提交 2e4800d3 编写于 作者: M Mr.doob

WebGLRenderer: Deallocate Object when removed from scene graph (no need for...

WebGLRenderer: Deallocate Object when removed from scene graph (no need for object.dispose()). See #5269.
上级 027250de
......@@ -88,7 +88,6 @@
// clean up
mesh.dispose();
geometry.dispose();
material.dispose();
texture.dispose();
......
......@@ -706,12 +706,6 @@ THREE.Object3D.prototype = {
return object;
},
dispose: function () {
this.dispatchEvent( { type: 'dispose' } );
}
};
......
......@@ -513,11 +513,11 @@ THREE.WebGLRenderer = function ( parameters ) {
// Events
var onObjectDispose = function ( event ) {
var onObjectRemoved = function ( event ) {
var object = event.target;
object.removeEventListener( 'dispose', onObjectDispose );
object.removeEventListener( 'removed', onObjectRemoved );
removeObject( object )
......@@ -3550,11 +3550,11 @@ THREE.WebGLRenderer = function ( parameters ) {
if ( object.__webglInit === undefined ) {
object.__webglInit = true;
object.addEventListener( 'dispose', onObjectDispose );
object._modelViewMatrix = new THREE.Matrix4();
object._normalMatrix = new THREE.Matrix3();
object.addEventListener( 'removed', onObjectRemoved );
}
var geometry = object.geometry;
......@@ -3864,6 +3864,10 @@ THREE.WebGLRenderer = function ( parameters ) {
}
delete object.__webglInit;
delete object._modelViewMatrix;
delete object._normalMatrix;
delete object.__webglActive;
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册