Struct wgpu_core::command::bundle::RenderBundle
source · pub struct RenderBundle<A: HalApi> {
base: BasePass<RenderCommand>,
pub(super) is_depth_read_only: bool,
pub(super) is_stencil_read_only: bool,
pub(crate) device_id: Stored<DeviceId>,
pub(crate) used: RenderBundleScope<A>,
pub(super) buffer_memory_init_actions: Vec<BufferInitTrackerAction>,
pub(super) texture_memory_init_actions: Vec<TextureInitTrackerAction>,
pub(super) context: RenderPassContext,
pub(crate) life_guard: LifeGuard,
discard_hal_labels: bool,
}
Fields§
§base: BasePass<RenderCommand>
§is_depth_read_only: bool
§is_stencil_read_only: bool
§device_id: Stored<DeviceId>
§used: RenderBundleScope<A>
§buffer_memory_init_actions: Vec<BufferInitTrackerAction>
§texture_memory_init_actions: Vec<TextureInitTrackerAction>
§context: RenderPassContext
§life_guard: LifeGuard
§discard_hal_labels: bool
Implementations§
source§impl<A: HalApi> RenderBundle<A>
impl<A: HalApi> RenderBundle<A>
sourcepub(super) unsafe fn execute(
&self,
raw: &mut A::CommandEncoder,
pipeline_layout_guard: &Storage<PipelineLayout<A>, PipelineLayoutId>,
bind_group_guard: &Storage<BindGroup<A>, BindGroupId>,
pipeline_guard: &Storage<RenderPipeline<A>, RenderPipelineId>,
buffer_guard: &Storage<Buffer<A>, BufferId>
) -> Result<(), ExecutionError>
pub(super) unsafe fn execute( &self, raw: &mut A::CommandEncoder, pipeline_layout_guard: &Storage<PipelineLayout<A>, PipelineLayoutId>, bind_group_guard: &Storage<BindGroup<A>, BindGroupId>, pipeline_guard: &Storage<RenderPipeline<A>, RenderPipelineId>, buffer_guard: &Storage<Buffer<A>, BufferId> ) -> Result<(), ExecutionError>
Actually encode the contents into a native command buffer.
This is partially duplicating the logic of command_encoder_run_render_pass
.
However the point of this function is to be lighter, since we already had
a chance to go through the commands in render_bundle_encoder_finish
.
Note that the function isn’t expected to fail, generally. All the validation has already been done by this point. The only failure condition is if some of the used buffers are destroyed.
Trait Implementations§
source§impl<A: HalApi> Resource for RenderBundle<A>
impl<A: HalApi> Resource for RenderBundle<A>
impl<A: HalApi> Access<PipelineLayout<A>> for RenderBundle<A>
impl<A: HalApi> Access<RenderBundle<A>> for CommandBuffer<A>
impl<A: HalApi> Access<RenderBundle<A>> for Device<A>
impl<A: HalApi> Send for RenderBundle<A>
impl<A: HalApi> Sync for RenderBundle<A>
Auto Trait Implementations§
impl<A> !RefUnwindSafe for RenderBundle<A>
impl<A> Unpin for RenderBundle<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 RenderBundle<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