You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
661 B

2 years ago
import WebGPUBinding from './WebGPUBinding.js';
import { getFloatLength } from './WebGPUBufferUtils.js';
class WebGPUBuffer extends WebGPUBinding {
constructor( name, type, buffer = null ) {
super( name );
this.isBuffer = true;
this.bytesPerElement = Float32Array.BYTES_PER_ELEMENT;
this.type = type;
this.visibility = GPUShaderStage.VERTEX;
this.usage = GPUBufferUsage.COPY_DST;
this.buffer = buffer;
this.bufferGPU = null; // set by the renderer
}
getByteLength() {
return getFloatLength( this.buffer.byteLength );
}
getBuffer() {
return this.buffer;
}
update() {
return true;
}
}
export default WebGPUBuffer;