Struct wgpu_core::track::RenderBundleScope
source · 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>
impl<A: HalApi> RenderBundleScope<A>
sourcepub 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
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.
sourcepub unsafe fn merge_bind_group(
&mut self,
textures: &Storage<Texture<A>, TextureId>,
bind_group: &BindGroupStates<A>
) -> Result<(), UsageConflict>
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> 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