[][src]Enum vulkano::command_buffer::sys::Kind

pub enum Kind<R, F> {
    Primary,
    Secondary {
        render_pass: Option<KindSecondaryRenderPass<R, F>>,
        occlusion_query: KindOcclusionQuery,
        query_statistics_flags: QueryPipelineStatisticFlags,
    },
}

Determines the kind of command buffer that we want to create.

Variants

Primary

A primary command buffer can execute all commands and can call secondary command buffers.

Secondary

A secondary command buffer.

Fields of Secondary

render_pass: Option<KindSecondaryRenderPass<R, F>>

If Some, can only call draw operations that can be executed from within a specific subpass. Otherwise it can execute all dispatch and transfer operations, but not drawing operations.

occlusion_query: KindOcclusionQuery

Whether it is allowed to have an active occlusion query in the primary command buffer when executing this secondary command buffer.

query_statistics_flags: QueryPipelineStatisticFlags

Which pipeline statistics queries are allowed to be active when this secondary command buffer starts.

Note that the pipeline_statistics_query feature must be enabled if any of the flags of this value are set.

Methods

impl Kind<RenderPass<EmptySinglePassRenderPassDesc>, Framebuffer<RenderPass<EmptySinglePassRenderPassDesc>, ()>>[src]

pub fn primary(
) -> Kind<Arc<RenderPass<EmptySinglePassRenderPassDesc>>, Framebuffer<RenderPass<EmptySinglePassRenderPassDesc>, ()>>
[src]

Equivalent to Kind::Primary.

Note: If you use let kind = Kind::Primary; in your code, you will probably get a compilation error because the Rust compiler couldn't determine the template parameters of Kind. To solve that problem in an easy way you can use this function instead.

pub fn secondary(
    occlusion_query: KindOcclusionQuery,
    query_statistics_flags: QueryPipelineStatisticFlags
) -> Kind<Arc<RenderPass<EmptySinglePassRenderPassDesc>>, Framebuffer<RenderPass<EmptySinglePassRenderPassDesc>, ()>>
[src]

Equivalent to Kind::Secondary.

Note: If you use let kind = Kind::Secondary; in your code, you will probably get a compilation error because the Rust compiler couldn't determine the template parameters of Kind. To solve that problem in an easy way you can use this function instead.

Trait Implementations

impl<R: Clone, F: Clone> Clone for Kind<R, F>[src]

impl<R: Debug, F: Debug> Debug for Kind<R, F>[src]

Auto Trait Implementations

impl<R, F> Send for Kind<R, F> where
    F: Send,
    R: Send

impl<R, F> Unpin for Kind<R, F> where
    F: Unpin,
    R: Unpin

impl<R, F> Sync for Kind<R, F> where
    F: Sync,
    R: Sync

impl<R, F> UnwindSafe for Kind<R, F> where
    F: UnwindSafe,
    R: UnwindSafe

impl<R, F> RefUnwindSafe for Kind<R, F> where
    F: RefUnwindSafe,
    R: RefUnwindSafe

Blanket Implementations

impl<T> Content for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]