[][src]Struct nannou::vk::pipeline::GraphicsPipeline

pub struct GraphicsPipeline<VertexDefinition, Layout, RenderP> { /* fields omitted */ }

Defines how the implementation should perform a draw operation.

This object contains the shaders and the various fixed states that describe how the implementation should perform the various operations needed by a draw command.

Methods

impl GraphicsPipeline<(), (), ()>[src]

pub fn start(
) -> GraphicsPipelineBuilder<BufferlessDefinition, EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), EmptyEntryPointDummy, (), ()>
[src]

Starts the building process of a graphics pipeline. Returns a builder object that you can fill with the various parameters.

impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>[src]

pub fn vertex_definition(&self) -> &Mv[src]

Returns the vertex definition used in the constructor.

pub fn device(&self) -> &Arc<Device>[src]

Returns the device used to create this pipeline.

impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp> where
    L: PipelineLayoutAbstract
[src]

pub fn layout(&self) -> &L[src]

Returns the pipeline layout used in the constructor.

impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp> where
    Rp: RenderPassDesc
[src]

pub fn subpass(&self) -> Subpass<&Rp>[src]

Returns the pass used in the constructor.

impl<Mv, L, Rp> GraphicsPipeline<Mv, L, Rp>[src]

pub fn render_pass(&self) -> &Rp[src]

Returns the render pass used in the constructor.

pub fn has_dynamic_line_width(&self) -> bool[src]

Returns true if the line width used by this pipeline is dynamic.

pub fn num_viewports(&self) -> u32[src]

Returns the number of viewports and scissors of this pipeline.

pub fn has_dynamic_viewports(&self) -> bool[src]

Returns true if the viewports used by this pipeline are dynamic.

pub fn has_dynamic_scissors(&self) -> bool[src]

Returns true if the scissors used by this pipeline are dynamic.

pub fn has_dynamic_depth_bounds(&self) -> bool[src]

Returns true if the depth bounds used by this pipeline are dynamic.

pub fn has_dynamic_stencil_compare_mask(&self) -> bool[src]

Returns true if the stencil compare masks used by this pipeline are dynamic.

pub fn has_dynamic_stencil_write_mask(&self) -> bool[src]

Returns true if the stencil write masks used by this pipeline are dynamic.

pub fn has_dynamic_stencil_reference(&self) -> bool[src]

Returns true if the stencil references used by this pipeline are dynamic.

Trait Implementations

impl<Mv, L, Rp> DeviceOwned for GraphicsPipeline<Mv, L, Rp>[src]

impl<Mv, L, Rp> RenderPassDesc for GraphicsPipeline<Mv, L, Rp> where
    Rp: RenderPassDesc
[src]

Important traits for RenderPassDescAttachments<'a, R>
fn attachment_descs(&self) -> RenderPassDescAttachments<Self>[src]

Returns an iterator to the list of attachments.

Important traits for RenderPassDescSubpasses<'a, R>
fn subpass_descs(&self) -> RenderPassDescSubpasses<Self>[src]

Returns an iterator to the list of subpasses.

Important traits for RenderPassDescDependencies<'a, R>
fn dependency_descs(&self) -> RenderPassDescDependencies<Self>[src]

Returns an iterator to the list of dependencies.

fn is_compatible_with<T>(&self, other: &T) -> bool where
    T: RenderPassDesc + ?Sized
[src]

Returns true if this render pass is compatible with another render pass. Read more

fn build_render_pass(
    self,
    device: Arc<Device>
) -> Result<RenderPass<Self>, RenderPassCreationError>
[src]

Builds a render pass from this description. Read more

fn num_color_attachments(&self, subpass: u32) -> Option<u32>[src]

Returns the number of color attachments of a subpass. Returns None if out of range.

fn num_samples(&self, subpass: u32) -> Option<u32>[src]

Returns the number of samples of the attachments of a subpass. Returns None if out of range or if the subpass has no attachment. TODO: return an enum instead? Read more

fn has_depth_stencil_attachment(&self, subpass: u32) -> Option<(bool, bool)>[src]

Returns a tuple whose first element is true if there's a depth attachment, and whose second element is true if there's a stencil attachment. Returns None if out of range. Read more

fn has_depth(&self, subpass: u32) -> Option<bool>[src]

Returns true if a subpass has a depth attachment or a depth-stencil attachment.

fn has_writable_depth(&self, subpass: u32) -> Option<bool>[src]

Returns true if a subpass has a depth attachment or a depth-stencil attachment whose layout is not DepthStencilReadOnlyOptimal. Read more

fn has_stencil(&self, subpass: u32) -> Option<bool>[src]

Returns true if a subpass has a stencil attachment or a depth-stencil attachment.

fn has_writable_stencil(&self, subpass: u32) -> Option<bool>[src]

Returns true if a subpass has a stencil attachment or a depth-stencil attachment whose layout is not DepthStencilReadOnlyOptimal. Read more

impl<Mv, L, Rp> PipelineLayoutAbstract for GraphicsPipeline<Mv, L, Rp> where
    L: PipelineLayoutAbstract
[src]

impl<Mv, L, Rp> PipelineLayoutDesc for GraphicsPipeline<Mv, L, Rp> where
    L: PipelineLayoutDesc
[src]

fn provided_set_layout(
    &self,
    _set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
[src]

If the PipelineLayoutDesc implementation is able to provide an existing UnsafeDescriptorSetLayout for a given set, it can do so by returning it here. Read more

fn union<T>(self, other: T) -> PipelineLayoutDescUnion<Self, T>[src]

Builds the union of this layout and another.

fn check_against_limits(
    &self,
    device: &Device
) -> Result<(), PipelineLayoutLimitsError>
[src]

Checks whether this description fulfills the device limits requirements.

fn build(
    self,
    device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>
[src]

Turns the layout description into a PipelineLayout object that can be used by Vulkan. Read more

impl<C, Mv, L, Rp> RenderPassDescClearValues<C> for GraphicsPipeline<Mv, L, Rp> where
    Rp: RenderPassDescClearValues<C>, 
[src]

impl<Mv, L, Rp, I> VertexDefinition<I> for GraphicsPipeline<Mv, L, Rp> where
    Mv: VertexDefinition<I>, 
[src]

type BuffersIter = <Mv as VertexDefinition<I>>::BuffersIter

Iterator that returns the offset, the stride (in bytes) and input rate of each buffer.

type AttribsIter = <Mv as VertexDefinition<I>>::AttribsIter

Iterator that returns the attribute location, buffer id, and infos.

impl<Mv, L, Rp> VulkanObject for GraphicsPipeline<Mv, L, Rp>[src]

type Object = u64

The type of the object.

impl<Mv, L, Rp> RenderPassAbstract for GraphicsPipeline<Mv, L, Rp> where
    Rp: RenderPassAbstract
[src]

impl<Mv, L, Rp> GraphicsPipelineAbstract for GraphicsPipeline<Mv, L, Rp> where
    L: PipelineLayoutAbstract,
    Mv: VertexSource<Vec<Arc<dyn BufferAccess + 'static + Sync + Send>>>,
    Rp: RenderPassAbstract
[src]

fn subpass(self) -> Subpass<Self>[src]

Returns the subpass this graphics pipeline is rendering to.

impl<Mv, L, Rp> Debug for GraphicsPipeline<Mv, L, Rp>[src]

impl<Mv, L, Rp, S> VertexSource<S> for GraphicsPipeline<Mv, L, Rp> where
    Mv: VertexSource<S>, 
[src]

Auto Trait Implementations

impl<VertexDefinition, Layout, RenderP> Send for GraphicsPipeline<VertexDefinition, Layout, RenderP> where
    Layout: Send,
    RenderP: Send,
    VertexDefinition: Send

impl<VertexDefinition, Layout, RenderP> Sync for GraphicsPipeline<VertexDefinition, Layout, RenderP> where
    Layout: Sync,
    RenderP: Sync,
    VertexDefinition: Sync

Blanket Implementations

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

impl<T, U> Into<U> for T where
    U: From<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> Borrow<T> for T where
    T: ?Sized
[src]

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

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

impl<T> PipelineLayoutDesc for T where
    T: SafeDeref,
    <T as Deref>::Target: PipelineLayoutDesc
[src]

fn provided_set_layout(
    &self,
    _set: usize
) -> Option<Arc<UnsafeDescriptorSetLayout>>
[src]

If the PipelineLayoutDesc implementation is able to provide an existing UnsafeDescriptorSetLayout for a given set, it can do so by returning it here. Read more

fn union<T>(self, other: T) -> PipelineLayoutDescUnion<Self, T>[src]

Builds the union of this layout and another.

fn check_against_limits(
    &self,
    device: &Device
) -> Result<(), PipelineLayoutLimitsError>
[src]

Checks whether this description fulfills the device limits requirements.

fn build(
    self,
    device: Arc<Device>
) -> Result<PipelineLayout<Self>, PipelineLayoutCreationError>
[src]

Turns the layout description into a PipelineLayout object that can be used by Vulkan. Read more

impl<T> DeviceOwned for T where
    T: Deref,
    <T as Deref>::Target: DeviceOwned
[src]

impl<T> Content for T[src]

impl<T> RenderPassAbstract for T where
    T: SafeDeref,
    <T as Deref>::Target: RenderPassAbstract
[src]

impl<T> PipelineLayoutAbstract for T where
    T: SafeDeref,
    <T as Deref>::Target: PipelineLayoutAbstract
[src]

impl<T> GraphicsPipelineAbstract for T where
    T: SafeDeref,
    <T as Deref>::Target: GraphicsPipelineAbstract
[src]

fn subpass(self) -> Subpass<Self>[src]

Returns the subpass this graphics pipeline is rendering to.

impl<T, U> PipelineLayoutPushConstantsCompatible<U> for T where
    T: PipelineLayoutDesc + ?Sized,
    U: ?Sized
[src]

impl<L, T> VertexSource<L> for T where
    T: SafeDeref,
    <T as Deref>::Target: VertexSource<L>, 
[src]

impl<A, B> RenderPassCompatible<B> for A where
    A: RenderPassDesc + ?Sized,
    B: RenderPassDesc + ?Sized
[src]

impl<T, C> RenderPassDescClearValues<C> for T where
    T: SafeDeref,
    <T as Deref>::Target: RenderPassDescClearValues<C>, 
[src]

impl<T, U> PipelineLayoutSuperset<U> for T where
    T: PipelineLayoutDesc + ?Sized,
    U: PipelineLayoutDesc + ?Sized
[src]

impl<T, U> PipelineLayoutSetsCompatible<U> for T where
    T: PipelineLayoutDesc + ?Sized,
    U: DescriptorSetsCollection + ?Sized
[src]

impl<T> RenderPassDesc for T where
    T: SafeDeref,
    <T as Deref>::Target: RenderPassDesc
[src]

Important traits for RenderPassDescAttachments<'a, R>
fn attachment_descs(&self) -> RenderPassDescAttachments<Self>[src]

Returns an iterator to the list of attachments.

Important traits for RenderPassDescSubpasses<'a, R>
fn subpass_descs(&self) -> RenderPassDescSubpasses<Self>[src]

Returns an iterator to the list of subpasses.

Important traits for RenderPassDescDependencies<'a, R>
fn dependency_descs(&self) -> RenderPassDescDependencies<Self>[src]

Returns an iterator to the list of dependencies.

fn is_compatible_with<T>(&self, other: &T) -> bool where
    T: RenderPassDesc + ?Sized
[src]

Returns true if this render pass is compatible with another render pass. Read more

fn build_render_pass(
    self,
    device: Arc<Device>
) -> Result<RenderPass<Self>, RenderPassCreationError>
[src]

Builds a render pass from this description. Read more

fn num_color_attachments(&self, subpass: u32) -> Option<u32>[src]

Returns the number of color attachments of a subpass. Returns None if out of range.

fn num_samples(&self, subpass: u32) -> Option<u32>[src]

Returns the number of samples of the attachments of a subpass. Returns None if out of range or if the subpass has no attachment. TODO: return an enum instead? Read more

fn has_depth_stencil_attachment(&self, subpass: u32) -> Option<(bool, bool)>[src]

Returns a tuple whose first element is true if there's a depth attachment, and whose second element is true if there's a stencil attachment. Returns None if out of range. Read more

fn has_depth(&self, subpass: u32) -> Option<bool>[src]

Returns true if a subpass has a depth attachment or a depth-stencil attachment.

fn has_writable_depth(&self, subpass: u32) -> Option<bool>[src]

Returns true if a subpass has a depth attachment or a depth-stencil attachment whose layout is not DepthStencilReadOnlyOptimal. Read more

fn has_stencil(&self, subpass: u32) -> Option<bool>[src]

Returns true if a subpass has a stencil attachment or a depth-stencil attachment.

fn has_writable_stencil(&self, subpass: u32) -> Option<bool>[src]

Returns true if a subpass has a stencil attachment or a depth-stencil attachment whose layout is not DepthStencilReadOnlyOptimal. Read more

impl<A, B> RenderPassSubpassInterface<B> for A where
    A: RenderPassDesc,
    B: ShaderInterfaceDef + ?Sized
[src]

impl<I, T> VertexDefinition<I> for T where
    T: SafeDeref,
    <T as Deref>::Target: VertexDefinition<I>, 
[src]

type BuffersIter = <<T as Deref>::Target as VertexDefinition<I>>::BuffersIter

Iterator that returns the offset, the stride (in bytes) and input rate of each buffer.

type AttribsIter = <<T as Deref>::Target as VertexDefinition<I>>::AttribsIter

Iterator that returns the attribute location, buffer id, and infos.

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

impl<T> Erased for T

impl<S> FromSample<S> for S[src]

impl<T, U> ToSample<U> for T where
    U: FromSample<T>, 
[src]

impl<S, T> Duplex<S> for T where
    T: FromSample<S> + ToSample<S>, 
[src]

impl<T> SetParameter for T

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 

Sets value as a parameter of self.

impl<T> SetParameter for T

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 

Sets value as a parameter of self.