Files
webgpu/src/buffer-util.ts

30 lines
844 B
TypeScript

export class BufferUtil {
public static createVertexBuffer(device: GPUDevice, data: Float32Array ): GPUBuffer {
const buffer = device.createBuffer({
size: data.byteLength,
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.VERTEX,
mappedAtCreation: true,
});
new Float32Array(buffer.getMappedRange()).set(data);
buffer.unmap();
return buffer;
}
public static createIndexBuffer(device: GPUDevice, data: Uint16Array): GPUBuffer {
const buffer = device.createBuffer({
size: data.byteLength,
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.INDEX,
mappedAtCreation: true,
});
new Uint16Array(buffer.getMappedRange()).set(data);
buffer.unmap();
return buffer;
}
}