Struct wgpu_core::track::buffer::BufferBindGroupState
source · pub(crate) struct BufferBindGroupState<A: HalApi> {
buffers: Vec<(Valid<BufferId>, RefCount, BufferUses)>,
_phantom: PhantomData<A>,
}
Expand description
Stores all the buffers that a bind group stores.
Fields§
§buffers: Vec<(Valid<BufferId>, RefCount, BufferUses)>
§_phantom: PhantomData<A>
Implementations§
source§impl<A: HalApi> BufferBindGroupState<A>
impl<A: HalApi> BufferBindGroupState<A>
pub fn new() -> Self
sourcepub(crate) fn optimize(&mut self)
pub(crate) fn optimize(&mut self)
Optimize the buffer bind group state by sorting it by ID.
When this list of states is merged into a tracker, the memory accesses will be in a constant assending order.
sourcepub fn used(&self) -> impl Iterator<Item = Valid<BufferId>> + '_
pub fn used(&self) -> impl Iterator<Item = Valid<BufferId>> + '_
Returns a list of all buffers tracked. May contain duplicates.
sourcepub fn add_single<'a>(
&mut self,
storage: &'a Storage<Buffer<A>, BufferId>,
id: BufferId,
state: BufferUses
) -> Option<&'a Buffer<A>>
pub fn add_single<'a>( &mut self, storage: &'a Storage<Buffer<A>, BufferId>, id: BufferId, state: BufferUses ) -> Option<&'a Buffer<A>>
Adds the given resource with the given state.
Auto Trait Implementations§
impl<A> !RefUnwindSafe for BufferBindGroupState<A>
impl<A> Send for BufferBindGroupState<A>where A: Send,
impl<A> Sync for BufferBindGroupState<A>where A: Sync,
impl<A> Unpin for BufferBindGroupState<A>where A: Unpin,
impl<A> !UnwindSafe for BufferBindGroupState<A>
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