| # 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`. |
| |
| ### 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); |
| ``` |
| |