blob: 717765e53614c82bc68d72d4abd13e1d167c3e15 [file] [view]
# Buffer Map Extended Usages
## Overview:
- The `wgpu::Feature::BufferMapExtendedUsages` feature allows creating a buffer with `wgpu::BufferUsage::MapRead` and/or `wgpu::BufferUsage::MapWrite` and any other `wgpu::BufferUsage`.
- `wgpu::Feature::BufferMapExtendedUsages` is a superset of [`BufferMapWriteExtendedUsages`](./buffer_map_write_extended_usages.md). Enabling `BufferMapExtendedUsages` on a device implicitly enables `BufferMapWriteExtendedUsages` as well.
### Example Usage:
```
wgpu::BufferDescriptor descriptor;
descriptor.size = size;
descriptor.usage = wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::Uniform;
wgpu::Buffer uniformBuffer = device.CreateBuffer(&descriptor);
uniformBuffer.MapAsync(wgpu::MapMode::Write, 0, size,
[](WGPUBufferMapAsyncStatus status, void* userdata)
{
wgpu::Buffer* buffer = static_cast<wgpu::Buffer*>(userdata);
memcpy(buffer->GetMappedRange(), data, sizeof(data));
},
&uniformBuffer);
```