提交 1c568ed1 编写于 作者: G gero3

fix an issue wher buffers don't get deleted

上级 c27ad526
......@@ -2,7 +2,7 @@
* @author mrdoob / http://mrdoob.com/
*/
THREE.WebGLGeometries = function ( gl, info ) {
THREE.WebGLGeometries = function ( gl,properties, info ) {
var geometries = {};
......@@ -48,12 +48,12 @@ THREE.WebGLGeometries = function ( gl, info ) {
for ( var name in buffergeometry.attributes ) {
var attribute = buffergeometry.attributes[ name ];
var buffer = getAttributeBuffer(attribute);
if ( attribute.buffer !== undefined ) {
if ( buffer !== undefined ) {
gl.deleteBuffer( attribute.buffer );
delete attribute.buffer;
gl.deleteBuffer( buffer );
removeAttributeBuffer(attribute);
}
......@@ -66,5 +66,30 @@ THREE.WebGLGeometries = function ( gl, info ) {
info.memory.geometries --;
}
function getAttributeBuffer( attribute ) {
if ( attribute instanceof THREE.InterleavedBufferAttribute ) {
return properties.get( attribute.data ).__webglBuffer;
}
return properties.get( attribute ).__webglBuffer;
};
function removeAttributeBuffer( attribute ) {
if ( attribute instanceof THREE.InterleavedBufferAttribute ) {
properties.delete( attribute.data );
} else {
properties.delete( attribute );
};
};
};
......@@ -8,7 +8,7 @@ THREE.WebGLObjects = function ( gl, properties, info ) {
var morphInfluences = new Float32Array( 8 );
var geometries = new THREE.WebGLGeometries( gl, info );
var geometries = new THREE.WebGLGeometries( gl, properties, info );
//
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册