|
@@ -37,14 +37,11 @@ THREE.WebGLGeometries = function ( gl, info ) {
|
|
function onGeometryDispose( event ) {
|
|
function onGeometryDispose( event ) {
|
|
|
|
|
|
var geometry = event.target;
|
|
var geometry = event.target;
|
|
|
|
+ var buffergeometry = geometries[ geometry.id ];
|
|
|
|
|
|
- geometry.removeEventListener( 'dispose', onGeometryDispose );
|
|
|
|
-
|
|
|
|
- geometry = geometries[ geometry.id ];
|
|
|
|
-
|
|
|
|
- for ( var name in geometry.attributes ) {
|
|
|
|
|
|
+ for ( var name in buffergeometry.attributes ) {
|
|
|
|
|
|
- var attribute = geometry.attributes[ name ];
|
|
|
|
|
|
+ var attribute = buffergeometry.attributes[ name ];
|
|
|
|
|
|
if ( attribute.buffer !== undefined ) {
|
|
if ( attribute.buffer !== undefined ) {
|
|
|
|
|
|
@@ -56,6 +53,10 @@ THREE.WebGLGeometries = function ( gl, info ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ geometry.removeEventListener( 'dispose', onGeometryDispose );
|
|
|
|
+
|
|
|
|
+ delete geometries[ geometry.id ];
|
|
|
|
+
|
|
info.memory.geometries --;
|
|
info.memory.geometries --;
|
|
|
|
|
|
}
|
|
}
|