pub struct DynamicBuffer<D: Device, T: Sized> { /* private fields */ }
Expand description
A GPU buffer type which can resize and stretch like a vector
Implementations§
Source§impl<D, T> DynamicBuffer<D, T>
impl<D, T> DynamicBuffer<D, T>
Sourcepub fn new(usage: BufferUsage, num_buffers: usize) -> Self
pub fn new(usage: BufferUsage, num_buffers: usize) -> Self
creates a new empty buffer, you need to reserve
space afterwards
Sourcepub fn mut_buf(&mut self) -> &mut D::Buffer
pub fn mut_buf(&mut self) -> &mut D::Buffer
Access the internal buffer to write to this frame, for safe CPU writes an GPU in flight reads
Sourcepub fn reserve(&mut self, device: &mut D, heap: &mut D::Heap, capacity: usize)
pub fn reserve(&mut self, device: &mut D, heap: &mut D::Heap, capacity: usize)
creates a new buffer if more cpaacity is required
Sourcepub fn write<T2: Sized>(&mut self, offset: usize, data: &[T2])
pub fn write<T2: Sized>(&mut self, offset: usize, data: &[T2])
Write arbitrary data data to the buffer and update len, it should be either a u8 slice, a single &T or a slice of T
Sourcepub fn push(&mut self, item: &T)
pub fn push(&mut self, item: &T)
Push an item of type T
to the dynamic buffer and update the len
pub fn get_lookup(&self) -> GpuBufferLookup
Auto Trait Implementations§
impl<D, T> Freeze for DynamicBuffer<D, T>
impl<D, T> RefUnwindSafe for DynamicBuffer<D, T>
impl<D, T> Send for DynamicBuffer<D, T>where
T: Send,
impl<D, T> Sync for DynamicBuffer<D, T>where
T: Sync,
impl<D, T> Unpin for DynamicBuffer<D, T>
impl<D, T> UnwindSafe for DynamicBuffer<D, T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more