|
@@ -592,39 +592,57 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
geometry.__webglInit = undefined;
|
|
|
|
|
|
- if ( geometry.geometryGroups !== undefined ) {
|
|
|
+ if ( geometry instanceof THREE.BufferGeometry ) {
|
|
|
+
|
|
|
+ var attributes = geometry.attributes;
|
|
|
+
|
|
|
+ for ( var key in attributes ) {
|
|
|
+
|
|
|
+ if ( attributes[ key ].buffer !== undefined ) {
|
|
|
+
|
|
|
+ _gl.deleteBuffer( attributes[ key ].buffer );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
|
|
|
- for ( var g in geometry.geometryGroups ) {
|
|
|
+ if ( geometry.geometryGroups !== undefined ) {
|
|
|
|
|
|
- var geometryGroup = geometry.geometryGroups[ g ];
|
|
|
+ for ( var g in geometry.geometryGroups ) {
|
|
|
|
|
|
- if ( geometryGroup.numMorphTargets !== undefined ) {
|
|
|
+ var geometryGroup = geometry.geometryGroups[ g ];
|
|
|
|
|
|
- for ( var m = 0, ml = geometryGroup.numMorphTargets; m < ml; m ++ ) {
|
|
|
+ if ( geometryGroup.numMorphTargets !== undefined ) {
|
|
|
|
|
|
- _gl.deleteBuffer( geometryGroup.__webglMorphTargetsBuffers[ m ] );
|
|
|
+ for ( var m = 0, ml = geometryGroup.numMorphTargets; m < ml; m ++ ) {
|
|
|
+
|
|
|
+ _gl.deleteBuffer( geometryGroup.__webglMorphTargetsBuffers[ m ] );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ if ( geometryGroup.numMorphNormals !== undefined ) {
|
|
|
|
|
|
- if ( geometryGroup.numMorphNormals !== undefined ) {
|
|
|
+ for ( var m = 0, ml = geometryGroup.numMorphNormals; m < ml; m ++ ) {
|
|
|
|
|
|
- for ( var m = 0, ml = geometryGroup.numMorphNormals; m < ml; m ++ ) {
|
|
|
+ _gl.deleteBuffer( geometryGroup.__webglMorphNormalsBuffers[ m ] );
|
|
|
|
|
|
- _gl.deleteBuffer( geometryGroup.__webglMorphNormalsBuffers[ m ] );
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ deleteBuffers( geometryGroup );
|
|
|
|
|
|
- deleteBuffers( geometryGroup );
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ deleteBuffers( geometry );
|
|
|
|
|
|
- deleteBuffers( geometry );
|
|
|
+ }
|
|
|
|
|
|
};
|
|
|
|