Struct vulkano::pipeline::GraphicsPipeline [] [src]

pub struct GraphicsPipeline<VertexDefinition, Layout, RenderP> {
    // some 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<Vdef, L, Rp> GraphicsPipeline<Vdef, L, Rp> where L: PipelineLayout, Rp: RenderPass + RenderPassDesc
[src]

fn new<'a, Vsp, Vi, Vo, Vl, Fs, Fi, Fo, Fl>(device: &Arc<Device>, params: GraphicsPipelineParams<'a, Vdef, Vsp, Vi, Vo, Vl, ()()()EmptyPipeline()()()EmptyPipeline()()()EmptyPipeline, Fs, Fi, Fo, Fl, L, Rp>) -> Result<Arc<GraphicsPipeline<Vdef, L, Rp>>, GraphicsPipelineCreationError> where Vdef: VertexDefinition<Vi>, L: PipelineLayout + PipelineLayoutSuperset<Vl> + PipelineLayoutSuperset<Fl>, Vl: PipelineLayoutDesc, Fl: PipelineLayoutDesc, Fi: ShaderInterfaceDefMatch<Vo>, Fo: ShaderInterfaceDef, Vo: ShaderInterfaceDef, Rp: RenderPassSubpassInterface<Fo>

Builds a new graphics pipeline object.

See the documentation of GraphicsPipelineCreateInfo for more info about the parameter.

In order to avoid compiler errors caused by not being able to infer template parameters, this function assumes that you will only use a vertex shader and a fragment shader. See the other constructors for other possibilities.

fn with_geometry_shader<'a, Vsp, Vi, Vo, Vl, Gsp, Gi, Go, Gl, Fs, Fi, Fo, Fl>(device: &Arc<Device>, params: GraphicsPipelineParams<'a, Vdef, Vsp, Vi, Vo, Vl, ()()()EmptyPipeline()()()EmptyPipeline, Gsp, Gi, Go, Gl, Fs, Fi, Fo, Fl, L, Rp>) -> Result<Arc<GraphicsPipeline<Vdef, L, Rp>>, GraphicsPipelineCreationError> where Vdef: VertexDefinition<Vi>, L: PipelineLayout + PipelineLayoutSuperset<Vl> + PipelineLayoutSuperset<Fl> + PipelineLayoutSuperset<Gl>, Vl: PipelineLayoutDesc, Fl: PipelineLayoutDesc, Gl: PipelineLayoutDesc, Gi: ShaderInterfaceDefMatch<Vo>, Vo: ShaderInterfaceDef, Fi: ShaderInterfaceDefMatch<Go> + ShaderInterfaceDefMatch<Vo>, Fo: ShaderInterfaceDef, Go: ShaderInterfaceDef, Rp: RenderPassSubpassInterface<Fo>

Builds a new graphics pipeline object with a geometry shader.

See the documentation of GraphicsPipelineCreateInfo for more info about the parameter.

In order to avoid compiler errors caused by not being able to infer template parameters, this function assumes that you will use a vertex shader, a geometry shader and a fragment shader. See the other constructors for other possibilities.

fn with_tessellation<'a, Vsp, Vi, Vo, Vl, Tcs, Tci, Tco, Tcl, Tes, Tei, Teo, Tel, Fs, Fi, Fo, Fl>(device: &Arc<Device>, params: GraphicsPipelineParams<'a, Vdef, Vsp, Vi, Vo, Vl, Tcs, Tci, Tco, Tcl, Tes, Tei, Teo, Tel, ()()()EmptyPipeline, Fs, Fi, Fo, Fl, L, Rp>) -> Result<Arc<GraphicsPipeline<Vdef, L, Rp>>, GraphicsPipelineCreationError> where Vdef: VertexDefinition<Vi>, L: PipelineLayout + PipelineLayoutSuperset<Vl> + PipelineLayoutSuperset<Fl> + PipelineLayoutSuperset<Tcl> + PipelineLayoutSuperset<Tel>, Vl: PipelineLayoutDesc, Fl: PipelineLayoutDesc, Tcl: PipelineLayoutDesc, Tel: PipelineLayoutDesc, Tci: ShaderInterfaceDefMatch<Vo>, Tei: ShaderInterfaceDefMatch<Tco>, Vo: ShaderInterfaceDef, Tco: ShaderInterfaceDef, Teo: ShaderInterfaceDef, Fi: ShaderInterfaceDefMatch<Teo> + ShaderInterfaceDefMatch<Vo>, Fo: ShaderInterfaceDef, Rp: RenderPassSubpassInterface<Fo>

Builds a new graphics pipeline object with tessellation shaders.

See the documentation of GraphicsPipelineCreateInfo for more info about the parameter.

In order to avoid compiler errors caused by not being able to infer template parameters, this function assumes that you will use a vertex shader, a tessellation control shader, a tessellation evaluation shader and a fragment shader. See the other constructors for other possibilities.

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

fn vertex_definition(&self) -> &Mv

Returns the vertex definition used in the constructor.

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

fn layout(&self) -> &Arc<L>

Returns the pipeline layout used in the constructor.

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

fn render_pass(&self) -> &Arc<Rp>

Returns the render pass used in the constructor.

fn subpass(&self) -> Subpass<Rp>

Returns the pass used in the constructor.

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

fn has_dynamic_line_width(&self) -> bool

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

fn num_viewports(&self) -> u32

Returns the number of viewports and scissors of this pipeline.

fn has_dynamic_viewports(&self) -> bool

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

fn has_dynamic_scissors(&self) -> bool

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

fn has_dynamic_depth_bounds(&self) -> bool

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

fn has_dynamic_stencil_compare_mask(&self) -> bool

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

fn has_dynamic_stencil_write_mask(&self) -> bool

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

fn has_dynamic_stencil_reference(&self) -> bool

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

Trait Implementations

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

type Object = Pipeline

The type of the object.

fn internal_object(&self) -> Pipeline

Returns a reference to the object.

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

fn drop(&mut self)

A method called when the value goes out of scope. Read more