| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- class WebGPUGeometries {
 
- 	constructor( attributes, info ) {
 
- 		this.attributes = attributes;
 
- 		this.info = info;
 
- 		this.geometries = new WeakMap();
 
- 	}
 
- 	update( geometry ) {
 
- 		if ( this.geometries.has( geometry ) === false ) {
 
- 			const disposeCallback = onGeometryDispose.bind( this );
 
- 			this.geometries.set( geometry, disposeCallback );
 
- 			this.info.memory.geometries ++;
 
- 			geometry.addEventListener( 'dispose', disposeCallback );
 
- 		}
 
- 		const geometryAttributes = geometry.attributes;
 
- 		for ( const name in geometryAttributes ) {
 
- 			this.attributes.update( geometryAttributes[ name ] );
 
- 		}
 
- 		const index = geometry.index;
 
- 		if ( index !== null ) {
 
- 			this.attributes.update( index, true );
 
- 		}
 
- 	}
 
- }
 
- function onGeometryDispose( event ) {
 
- 	const geometry = event.target;
 
- 	const disposeCallback = this.geometries.get( geometry );
 
- 	this.geometries.delete( geometry );
 
- 	this.info.memory.geometries --;
 
- 	geometry.removeEventListener( 'dispose', disposeCallback );
 
- 	//
 
- 	const index = geometry.index;
 
- 	const geometryAttributes = geometry.attributes;
 
- 	if ( index !== null ) {
 
- 		this.attributes.remove( index );
 
- 	}
 
- 	for ( const name in geometryAttributes ) {
 
- 		this.attributes.remove( geometryAttributes[ name ] );
 
- 	}
 
- }
 
- export default WebGPUGeometries;
 
 
  |