Struct wgpu_core::track::stateless::StatelessBindGroupSate
source · pub(crate) struct StatelessBindGroupSate<T, Id: TypedId> {
resources: Vec<(Valid<Id>, RefCount)>,
_phantom: PhantomData<T>,
}
Expand description
Stores all the resources that a bind group stores.
Fields§
§resources: Vec<(Valid<Id>, RefCount)>
§_phantom: PhantomData<T>
Implementations§
source§impl<T: Resource, Id: TypedId> StatelessBindGroupSate<T, Id>
impl<T: Resource, Id: TypedId> StatelessBindGroupSate<T, Id>
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<Id>> + '_
pub fn used(&self) -> impl Iterator<Item = Valid<Id>> + '_
Returns a list of all resources tracked. May contain duplicates.
sourcepub fn add_single<'a>(
&mut self,
storage: &'a Storage<T, Id>,
id: Id
) -> Option<&'a T>
pub fn add_single<'a>( &mut self, storage: &'a Storage<T, Id>, id: Id ) -> Option<&'a T>
Adds the given resource.
Auto Trait Implementations§
impl<T, Id> RefUnwindSafe for StatelessBindGroupSate<T, Id>where Id: RefUnwindSafe, T: RefUnwindSafe,
impl<T, Id> Send for StatelessBindGroupSate<T, Id>where Id: Send, T: Send,
impl<T, Id> Sync for StatelessBindGroupSate<T, Id>where Id: Sync, T: Sync,
impl<T, Id> Unpin for StatelessBindGroupSate<T, Id>where Id: Unpin, T: Unpin,
impl<T, Id> UnwindSafe for StatelessBindGroupSate<T, Id>where Id: UnwindSafe, T: UnwindSafe,
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