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
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;
|