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

WebGLRenderer: Refactored deallocateGeometry code as per @MiiBond suggestion in #3566.

上级 641cdb0b
......@@ -558,9 +558,7 @@ THREE.WebGLRenderer = function ( parameters ) {
// Buffer deallocation
var deallocateGeometry = function ( geometry ) {
geometry.__webglInit = undefined;
var deleteBuffers = function ( geometry ) {
if ( geometry.__webglVertexBuffer !== undefined ) _gl.deleteBuffer( geometry.__webglVertexBuffer );
if ( geometry.__webglNormalBuffer !== undefined ) _gl.deleteBuffer( geometry.__webglNormalBuffer );
......@@ -576,8 +574,23 @@ THREE.WebGLRenderer = function ( parameters ) {
if ( geometry.__webglLineBuffer !== undefined ) _gl.deleteBuffer( geometry.__webglLineBuffer );
if ( geometry.__webglLineDistanceBuffer !== undefined ) _gl.deleteBuffer( geometry.__webglLineDistanceBuffer );
// custom attributes
if ( geometry.__webglCustomAttributesList !== undefined ) {
for ( var id in geometry.__webglCustomAttributesList ) {
_gl.deleteBuffer( geometry.__webglCustomAttributesList[ id ].buffer );
}
}
};
var deallocateGeometry = function ( geometry ) {
// geometry groups
geometry.__webglInit = undefined;
if ( geometry.geometryGroups !== undefined ) {
......@@ -605,13 +618,13 @@ THREE.WebGLRenderer = function ( parameters ) {
}
deleteCustomAttributesBuffers( geometryGroup );
deleteBuffers( geometryGroup );
}
}
deleteCustomAttributesBuffers( geometry );
deleteBuffers( geometry );
};
......@@ -723,22 +736,6 @@ THREE.WebGLRenderer = function ( parameters ) {
};
//
function deleteCustomAttributesBuffers( geometry ) {
if ( geometry.__webglCustomAttributesList ) {
for ( var id in geometry.__webglCustomAttributesList ) {
_gl.deleteBuffer( geometry.__webglCustomAttributesList[ id ].buffer );
}
}
};
// Buffer initialization
function initCustomAttributes ( geometry, object ) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册