Enum gfx_hal::pso::PrimitiveAssemblerDesc
source · [−]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>,
},
}
Expand description
Primitive Assembler describes how input data are fetched in the pipeline and formed into primitives before being sent into the fragment shader.
Variants
Vertex
Fields
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:
-
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.
-
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.
Vertex based pipeline
Mesh
Fields
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.
Mesh shading pipeline
Trait Implementations
Auto Trait Implementations
impl<'a, B> RefUnwindSafe for PrimitiveAssemblerDesc<'a, B> where
<B as Backend>::ShaderModule: RefUnwindSafe,
impl<'a, B> Send for PrimitiveAssemblerDesc<'a, B>
impl<'a, B> Sync for PrimitiveAssemblerDesc<'a, B>
impl<'a, B> Unpin for PrimitiveAssemblerDesc<'a, B>
impl<'a, B> UnwindSafe for PrimitiveAssemblerDesc<'a, B> where
<B as Backend>::ShaderModule: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more