3D-Demo/jsm/renderers/webgpu/WebGPUObjects.js

43 lines
671 B
JavaScript
Raw Normal View History

2022-10-14 16:50:42 +08:00
class WebGPUObjects {
constructor( geometries, info ) {
this.geometries = geometries;
this.info = info;
this.updateMap = new WeakMap();
}
update( object ) {
const geometry = object.geometry;
const updateMap = this.updateMap;
const frame = this.info.render.frame;
if ( geometry.isBufferGeometry !== true ) {
throw new Error( 'THREE.WebGPURenderer: This renderer only supports THREE.BufferGeometry for geometries.' );
}
if ( updateMap.get( geometry ) !== frame ) {
this.geometries.update( geometry );
updateMap.set( geometry, frame );
}
}
dispose() {
this.updateMap = new WeakMap();
}
}
export default WebGPUObjects;