UNPKG

@animech-public/playcanvas

Version:
2 lines (1 loc) 772 B
class e{constructor(e=0){this.buffer=null,this.usageFlags=0,this.usageFlags=e}destroy(e){this.buffer&&(this.buffer.destroy(),this.buffer=null)}get initialized(){return!!this.buffer}loseContext(){}allocate(e,t){this.buffer=e.wgpu.createBuffer({size:t,usage:this.usageFlags})}unlock(e,t){var r,s;const f=e.wgpu;if(!this.buffer){const r=t.byteLength+3&-4;this.usageFlags|=GPUBufferUsage.COPY_DST,this.allocate(e,r)}const u=null!=(r=t.byteOffset)?r:0,i=new Uint8Array(null!=(s=t.buffer)?s:t,u,t.byteLength),a=new Uint8Array(this.buffer.size);a.set(i),f.queue.writeBuffer(this.buffer,0,a,0,a.length)}read(e,t,r,s){return e.readStorageBuffer(this,t,r,s)}write(e,t,r,s,f){e.writeStorageBuffer(this,t,r,s,f)}clear(e,t,r){e.clearStorageBuffer(this,t,r)}}export{e as WebgpuBuffer};