@animech-public/playcanvas
Version:
PlayCanvas WebGL game engine
2 lines (1 loc) • 705 B
JavaScript
import{BUFFERUSAGE_STORAGE as i}from"./constants.js";let e=0;class t{constructor(t,s,r=0){this.id=e++,this.device=t,this.byteSize=s,this.bufferUsage=r,this.impl=t.createBufferImpl(i|r),this.impl.allocate(t,s),this.device.buffers.push(this),this.adjustVramSizeTracking(t._vram,this.byteSize)}destroy(){const i=this.device,e=i.buffers.indexOf(this);-1!==e&&i.buffers.splice(e,1),this.adjustVramSizeTracking(i._vram,-this.byteSize),this.impl.destroy(i)}adjustVramSizeTracking(i,e){i.sb+=e}read(i=0,e=this.byteSize,t=null){return this.impl.read(this.device,i,e,t)}write(i=0,e,t=0,s){this.impl.write(this.device,i,e,t,s)}clear(i=0,e=this.byteSize){this.impl.clear(this.device,i,e)}}export{t as StorageBuffer};