Enum gfx_hal::pso::PrimitiveAssemblerDesc[][src]

pub enum PrimitiveAssemblerDesc<'a, B: Backend> {
    Vertex {
        buffers: &'a [VertexBufferDesc],
        attributes: &'a [AttributeDesc],
        input_assembler: InputAssemblerDesc,
        vertex: EntryPoint<'a, B>,
        tessellation: Option<(EntryPoint<'a, B>, EntryPoint<'a, B>)>,
        geometry: Option<EntryPoint<'a, B>>,
    },
    Mesh {
        task: Option<EntryPoint<'a, B>>,
        mesh: EntryPoint<'a, B>,
    },
}

Primitive Assembler describes how input data are fetched in the pipeline and formed into primitives before being sent into the fragment shader.

Variants

Vertex

Vertex based pipeline

Fields of Vertex

buffers: &'a [VertexBufferDesc]

Vertex buffers (IA)

attributes: &'a [AttributeDesc]

Vertex attributes (IA)

input_assembler: InputAssemblerDesc

Input assembler attributes, describes how vertices are assembled into primitives (such as triangles).

vertex: EntryPoint<'a, B>

A shader that outputs a vertex in a model.

tessellation: Option<(EntryPoint<'a, B>, EntryPoint<'a, B>)>

Tesselation shaders consisting of:

  1. Hull shader: takes in an input patch (values representing a small portion of a shape, which may be actual geometry or may be parameters for creating geometry) and produces one or more output patches.

  2. Domain shader: takes in domains produced from a hull shader's output patches and computes actual vertex positions.

geometry: Option<EntryPoint<'a, B>>

A shader that takes given input vertexes and outputs zero or more output vertexes.

Mesh

Mesh shading pipeline

Fields of Mesh

task: Option<EntryPoint<'a, B>>

A shader that creates a variable amount of mesh shader invocations.

mesh: EntryPoint<'a, B>

A shader of which each workgroup emits zero or more output primitives and the group of vertices and their associated data required for each output primitive.

Trait Implementations

impl<'a, B: Debug + Backend> Debug for PrimitiveAssemblerDesc<'a, B>[src]

Auto Trait Implementations

impl<'a, B> RefUnwindSafe for PrimitiveAssemblerDesc<'a, B> where
    <B as Backend>::ShaderModule: RefUnwindSafe
[src]

impl<'a, B> Send for PrimitiveAssemblerDesc<'a, B>[src]

impl<'a, B> Sync for PrimitiveAssemblerDesc<'a, B>[src]

impl<'a, B> Unpin for PrimitiveAssemblerDesc<'a, B>[src]

impl<'a, B> UnwindSafe for PrimitiveAssemblerDesc<'a, B> where
    <B as Backend>::ShaderModule: RefUnwindSafe
[src]

Blanket Implementations

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

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

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

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.