Trait vulkano::pipeline::vertex::VertexDefinition
[−]
[src]
pub unsafe trait VertexDefinition<I>: VertexSource<Vec<Arc<BufferAccess + Send + Sync>>> { type BuffersIter: ExactSizeIterator<Item = (u32, usize, InputRate)>; type AttribsIter: ExactSizeIterator<Item = (u32, u32, AttributeInfo)>; fn definition(
&self,
interface: &I
) -> Result<(Self::BuffersIter, Self::AttribsIter), IncompatibleVertexDefinitionError>; }
Trait for types that describe the definition of the vertex input used by a graphics pipeline.
Associated Types
type BuffersIter: ExactSizeIterator<Item = (u32, usize, InputRate)>
Iterator that returns the offset, the stride (in bytes) and input rate of each buffer.
type AttribsIter: ExactSizeIterator<Item = (u32, u32, AttributeInfo)>
Iterator that returns the attribute location, buffer id, and infos.
Required Methods
fn definition(
&self,
interface: &I
) -> Result<(Self::BuffersIter, Self::AttribsIter), IncompatibleVertexDefinitionError>
&self,
interface: &I
) -> Result<(Self::BuffersIter, Self::AttribsIter), IncompatibleVertexDefinitionError>
Builds the vertex definition to use to link this definition to a vertex shader's input interface.
Implementors
impl<Mv, L, Rp, I> VertexDefinition<I> for GraphicsPipeline<Mv, L, Rp> where
Mv: VertexDefinition<I>, type BuffersIter = <Mv as VertexDefinition<I>>::BuffersIter; type AttribsIter = <Mv as VertexDefinition<I>>::AttribsIter;impl<I, T> VertexDefinition<I> for T where
T: SafeDeref,
T::Target: VertexDefinition<I>, type BuffersIter = <T::Target as VertexDefinition<I>>::BuffersIter; type AttribsIter = <T::Target as VertexDefinition<I>>::AttribsIter;impl<T, U, I> VertexDefinition<I> for OneVertexOneInstanceDefinition<T, U> where
T: Vertex,
U: Vertex,
I: ShaderInterfaceDef, type BuffersIter = VecIntoIter<(u32, usize, InputRate)>; type AttribsIter = VecIntoIter<(u32, u32, AttributeInfo)>;impl<T, I> VertexDefinition<I> for SingleBufferDefinition<T> where
T: Vertex,
I: ShaderInterfaceDef, type BuffersIter = OptionIntoIter<(u32, usize, InputRate)>; type AttribsIter = VecIntoIter<(u32, u32, AttributeInfo)>;impl<T, U, I> VertexDefinition<I> for TwoBuffersDefinition<T, U> where
T: Vertex,
U: Vertex,
I: ShaderInterfaceDef, type BuffersIter = VecIntoIter<(u32, usize, InputRate)>; type AttribsIter = VecIntoIter<(u32, u32, AttributeInfo)>;impl<I> VertexDefinition<I> for BufferlessDefinition type BuffersIter = Empty<(u32, usize, InputRate)>; type AttribsIter = Empty<(u32, u32, AttributeInfo)>;