[−][src]Trait nannou::vk::VertexDefinition
Trait for types that describe the definition of the vertex input used by a graphics pipeline.
Associated Types
type BuffersIter: ExactSizeIterator
Iterator that returns the offset, the stride (in bytes) and input rate of each buffer.
type AttribsIter: ExactSizeIterator
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<I> VertexDefinition<I> for BufferlessDefinition
[src]
type BuffersIter = Empty<(u32, usize, InputRate)>
type AttribsIter = Empty<(u32, u32, AttributeInfo)>
fn definition(
&self,
&I
) -> Result<(<BufferlessDefinition as VertexDefinition<I>>::BuffersIter, <BufferlessDefinition as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
[src]
&self,
&I
) -> Result<(<BufferlessDefinition as VertexDefinition<I>>::BuffersIter, <BufferlessDefinition as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
impl<I, T> VertexDefinition<I> for T where
T: SafeDeref,
<T as Deref>::Target: VertexDefinition<I>,
[src]
T: SafeDeref,
<T as Deref>::Target: VertexDefinition<I>,
type BuffersIter = <<T as Deref>::Target as VertexDefinition<I>>::BuffersIter
type AttribsIter = <<T as Deref>::Target as VertexDefinition<I>>::AttribsIter
fn definition(
&self,
interface: &I
) -> Result<(<T as VertexDefinition<I>>::BuffersIter, <T as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
[src]
&self,
interface: &I
) -> Result<(<T as VertexDefinition<I>>::BuffersIter, <T as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
impl<Mv, L, Rp, I> VertexDefinition<I> for GraphicsPipeline<Mv, L, Rp> where
Mv: VertexDefinition<I>,
[src]
Mv: VertexDefinition<I>,
type BuffersIter = <Mv as VertexDefinition<I>>::BuffersIter
type AttribsIter = <Mv as VertexDefinition<I>>::AttribsIter
fn definition(
&self,
interface: &I
) -> Result<(<GraphicsPipeline<Mv, L, Rp> as VertexDefinition<I>>::BuffersIter, <GraphicsPipeline<Mv, L, Rp> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
[src]
&self,
interface: &I
) -> Result<(<GraphicsPipeline<Mv, L, Rp> as VertexDefinition<I>>::BuffersIter, <GraphicsPipeline<Mv, L, Rp> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
impl<T, I> VertexDefinition<I> for SingleBufferDefinition<T> where
I: ShaderInterfaceDef,
T: Vertex,
[src]
I: ShaderInterfaceDef,
T: Vertex,
type BuffersIter = IntoIter<(u32, usize, InputRate)>
type AttribsIter = IntoIter<(u32, u32, AttributeInfo)>
fn definition(
&self,
interface: &I
) -> Result<(<SingleBufferDefinition<T> as VertexDefinition<I>>::BuffersIter, <SingleBufferDefinition<T> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
[src]
&self,
interface: &I
) -> Result<(<SingleBufferDefinition<T> as VertexDefinition<I>>::BuffersIter, <SingleBufferDefinition<T> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
impl<T, I> VertexDefinition<I> for SingleInstanceBufferDefinition<T> where
I: ShaderInterfaceDef,
T: Vertex,
[src]
I: ShaderInterfaceDef,
T: Vertex,
type BuffersIter = IntoIter<(u32, usize, InputRate)>
type AttribsIter = IntoIter<(u32, u32, AttributeInfo)>
fn definition(
&self,
interface: &I
) -> Result<(<SingleInstanceBufferDefinition<T> as VertexDefinition<I>>::BuffersIter, <SingleInstanceBufferDefinition<T> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
[src]
&self,
interface: &I
) -> Result<(<SingleInstanceBufferDefinition<T> as VertexDefinition<I>>::BuffersIter, <SingleInstanceBufferDefinition<T> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
impl<T, U, I> VertexDefinition<I> for OneVertexOneInstanceDefinition<T, U> where
I: ShaderInterfaceDef,
T: Vertex,
U: Vertex,
[src]
I: ShaderInterfaceDef,
T: Vertex,
U: Vertex,
type BuffersIter = IntoIter<(u32, usize, InputRate)>
type AttribsIter = IntoIter<(u32, u32, AttributeInfo)>
fn definition(
&self,
interface: &I
) -> Result<(<OneVertexOneInstanceDefinition<T, U> as VertexDefinition<I>>::BuffersIter, <OneVertexOneInstanceDefinition<T, U> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
[src]
&self,
interface: &I
) -> Result<(<OneVertexOneInstanceDefinition<T, U> as VertexDefinition<I>>::BuffersIter, <OneVertexOneInstanceDefinition<T, U> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
impl<T, U, I> VertexDefinition<I> for TwoBuffersDefinition<T, U> where
I: ShaderInterfaceDef,
T: Vertex,
U: Vertex,
[src]
I: ShaderInterfaceDef,
T: Vertex,
U: Vertex,
type BuffersIter = IntoIter<(u32, usize, InputRate)>
type AttribsIter = IntoIter<(u32, u32, AttributeInfo)>
fn definition(
&self,
interface: &I
) -> Result<(<TwoBuffersDefinition<T, U> as VertexDefinition<I>>::BuffersIter, <TwoBuffersDefinition<T, U> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>
[src]
&self,
interface: &I
) -> Result<(<TwoBuffersDefinition<T, U> as VertexDefinition<I>>::BuffersIter, <TwoBuffersDefinition<T, U> as VertexDefinition<I>>::AttribsIter), IncompatibleVertexDefinitionError>