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>

source

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§

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> 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,