Struct wgpu_core::track::texture::DeviceTextureTracker

source ·
pub(crate) struct DeviceTextureTracker {
    current_state_set: TextureStateSet,
    metadata: ResourceMetadata<Weak<Texture>>,
    temp: Vec<PendingTransition<TextureUses>>,
}
Expand description

Stores all texture state within a device.

Fields§

§current_state_set: TextureStateSet§metadata: ResourceMetadata<Weak<Texture>>§temp: Vec<PendingTransition<TextureUses>>

Implementations§

source§

impl DeviceTextureTracker

source

pub fn new() -> Self

source

fn tracker_assert_in_bounds(&self, index: usize)

source

fn allow_index(&mut self, index: usize)

Extend the vectors to let the given index be valid.

source

pub fn used_resources(&self) -> impl Iterator<Item = Weak<Texture>> + '_

Returns a list of all textures tracked.

source

pub fn insert_single(&mut self, texture: &Arc<Texture>, usage: TextureUses)

Inserts a single texture and a state into the resource tracker.

If the resource already exists in the tracker, it will be overwritten.

source

pub fn set_single( &mut self, texture: &Arc<Texture>, selector: TextureSelector, new_state: TextureUses, ) -> Drain<'_, PendingTransition<TextureUses>>

Sets the state of a single texture.

If a transition is needed to get the texture into the given state, that transition is returned.

source

pub fn set_from_tracker_and_drain_transitions<'a, 'b: 'a>( &'a mut self, tracker: &'a TextureTracker, snatch_guard: &'b SnatchGuard<'b>, ) -> impl Iterator<Item = TextureBarrier<'a, dyn DynTexture>>

Sets the given state for all texture in the given tracker.

If a transition is needed to get the texture into the needed state, those transitions are returned.

source

pub fn set_from_usage_scope_and_drain_transitions<'a, 'b: 'a>( &'a mut self, scope: &'a TextureUsageScope, snatch_guard: &'b SnatchGuard<'b>, ) -> impl Iterator<Item = TextureBarrier<'a, dyn DynTexture>>

Sets the given state for all textures in the given UsageScope.

If a transition is needed to get the textures into the needed state, those transitions are returned.

source

pub fn remove(&mut self, index: TrackerIndex) -> bool

Unconditionally removes the given resource from the tracker.

Returns true if the resource was removed.

If the index is higher than the length of internal vectors, false will be returned.

Trait Implementations§

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<T> WasmNotSend for T
where T: Send,

source§

impl<T> WasmNotSendSync for T

source§

impl<T> WasmNotSync for T
where T: Sync,