30 lines
844 B
TypeScript
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;
|
|
}
|
|
} |