添加缓冲区工具函数和优化几何体处理
This commit is contained in:
30
src/buffer-util.ts
Normal file
30
src/buffer-util.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user