@animech-public/playcanvas
Version:
PlayCanvas WebGL game engine
2 lines (1 loc) • 571 B
JavaScript
import{DynamicBuffer as e}from"../dynamic-buffers.js";class r extends e{constructor(e,r,a){super(e),this.buffer=null,this.mappedRange=null,this.buffer=e.wgpu.createBuffer({size:r,usage:a?GPUBufferUsage.MAP_WRITE|GPUBufferUsage.COPY_SRC:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST,mappedAtCreation:a}),a&&this.onAvailable(),e._vram.ub+=r}destroy(e){e._vram.ub-=this.buffer.size,this.buffer.destroy(),this.buffer=null}onAvailable(){this.mappedRange=this.buffer.getMappedRange()}alloc(e,r){return new Int32Array(this.mappedRange,e,r/4)}}export{r as WebgpuDynamicBuffer};