createBuffer method
A general buffer. Its host usages are realised as gpuBufferUsageOf
says — a real mapping where WebGPU allows one beside the rest, a staging
copy or a queue write where it does not.
Implementation
@override
StorageBuffer createBuffer(
BufferDescriptor descriptor, {
ByteData? contents,
}) {
features.require(DeviceFeature.buffers, backend: _backend);
descriptor.checkFeatures(features, backend: _backend);
if (descriptor.lengthInBytes > limits.maxBufferSize) {
throw ArgumentError.value(
descriptor.lengthInBytes,
'lengthInBytes',
'is past maxBufferSize (${limits.maxBufferSize})',
);
}
return _guard(
'a ${descriptor.lengthInBytes}-byte buffer',
() => webgpuCreateBuffer(_gpuDevice, descriptor, contents: contents),
);
}