pub(crate) struct RenderBundleScope<A: HalApi> {
    pub buffers: BufferUsageScope<A>,
    pub textures: TextureUsageScope<A>,
    pub bind_groups: StatelessTracker<A, BindGroup<A>, BindGroupId>,
    pub render_pipelines: StatelessTracker<A, RenderPipeline<A>, RenderPipelineId>,
    pub query_sets: StatelessTracker<A, QuerySet<A>, QuerySetId>,
}
Expand description

This is a render bundle specific usage scope. It includes stateless resources that are not normally included in a usage scope, but are used by render bundles and need to be owned by the render bundles.

Fields§

§buffers: BufferUsageScope<A>§textures: TextureUsageScope<A>§bind_groups: StatelessTracker<A, BindGroup<A>, BindGroupId>§render_pipelines: StatelessTracker<A, RenderPipeline<A>, RenderPipelineId>§query_sets: StatelessTracker<A, QuerySet<A>, QuerySetId>

Implementations§

source§

impl<A: HalApi> RenderBundleScope<A>

source

pub fn new( buffers: &Storage<Buffer<A>, BufferId>, textures: &Storage<Texture<A>, TextureId>, bind_groups: &Storage<BindGroup<A>, BindGroupId>, render_pipelines: &Storage<RenderPipeline<A>, RenderPipelineId>, query_sets: &Storage<QuerySet<A>, QuerySetId> ) -> Self

Create the render bundle scope and pull the maximum IDs from the hubs.

source

pub unsafe fn merge_bind_group( &mut self, textures: &Storage<Texture<A>, TextureId>, bind_group: &BindGroupStates<A> ) -> Result<(), UsageConflict>

Merge the inner contents of a bind group into the render bundle tracker.

Only stateful things are merged in here, all other resources are owned indirectly by the bind group.

Safety

The maximum ID given by each bind group resource must be less than the length of the storage given at the call to new.

Auto Trait Implementations§

§

impl<A> !RefUnwindSafe for RenderBundleScope<A>

§

impl<A> Send for RenderBundleScope<A>where A: Send,

§

impl<A> Sync for RenderBundleScope<A>where A: Sync,

§

impl<A> Unpin for RenderBundleScope<A>where A: Unpin, <A as Api>::BindGroup: Unpin, <A as Api>::QuerySet: Unpin, <A as Api>::RenderPipeline: Unpin, <A as Api>::Sampler: Unpin, <A as Api>::TextureView: Unpin,

§

impl<A> !UnwindSafe for RenderBundleScope<A>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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 Twhere 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 Twhere 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> WasmNotSend for Twhere T: Send,

source§

impl<T> WasmNotSync for Twhere T: Sync,