pub struct ResourceTransition { /* private fields */ }Expand description
Tracks and validates resource state transitions, issuing barriers as needed.
Implementations§
Source§impl ResourceTransition
impl ResourceTransition
Sourcepub fn register(&mut self, resource_id: u32, initial: ResourceState)
pub fn register(&mut self, resource_id: u32, initial: ResourceState)
Register a resource with an initial state.
Sourcepub fn current_state(&self, resource_id: u32) -> Option<ResourceState>
pub fn current_state(&self, resource_id: u32) -> Option<ResourceState>
Get current state.
Sourcepub fn transition(
&mut self,
resource_id: u32,
new_state: ResourceState,
) -> Option<MemoryBarrierFlags>
pub fn transition( &mut self, resource_id: u32, new_state: ResourceState, ) -> Option<MemoryBarrierFlags>
Transition a resource to a new state. Returns the barrier flags needed.
Sourcepub fn transition_and_barrier(
&mut self,
gl: &Context,
resource_id: u32,
new_state: ResourceState,
)
pub fn transition_and_barrier( &mut self, gl: &Context, resource_id: u32, new_state: ResourceState, )
Transition and immediately issue the barrier.
Sourcepub fn unregister(&mut self, resource_id: u32)
pub fn unregister(&mut self, resource_id: u32)
Remove a resource from tracking.
Sourcepub fn tracked_count(&self) -> usize
pub fn tracked_count(&self) -> usize
Number of tracked resources.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ResourceTransition
impl RefUnwindSafe for ResourceTransition
impl Send for ResourceTransition
impl Sync for ResourceTransition
impl Unpin for ResourceTransition
impl UnsafeUnpin for ResourceTransition
impl UnwindSafe for ResourceTransition
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.