use wgpu::{Buffer, BufferUsages, Device};
pub struct GpuBufferManager {
device: Device,
}
impl GpuBufferManager {
pub fn new(device: Device) -> Self {
Self { device }
}
pub fn create_storage_buffer(&self, size: u64, label: &str) -> Buffer {
self.device.create_buffer(&wgpu::BufferDescriptor {
label: Some(label),
size,
usage: BufferUsages::STORAGE | BufferUsages::COPY_DST | BufferUsages::COPY_SRC,
mapped_at_creation: false,
})
}
pub fn create_staging_buffer(&self, size: u64, label: &str) -> Buffer {
self.device.create_buffer(&wgpu::BufferDescriptor {
label: Some(label),
size,
usage: BufferUsages::MAP_READ | BufferUsages::COPY_DST,
mapped_at_creation: false,
})
}
}