[][src]Struct web_glitz::pipeline::graphics::VertexInputLayoutDescriptorBuilder

pub struct VertexInputLayoutDescriptorBuilder { /* fields omitted */ }

Builds a new VertexInputLayoutDescriptor.

Example

use web_glitz::pipeline::graphics::{AttibuteLayoutAllocationHint, VertexInputLayoutDescriptorBuilder, VertexInputLayoutAllocationHint, InputRate, VertexAttributeDescriptor};
use web_glitz::pipeline::graphics::attribute_format::VertexAttributeFormat;

let mut builder = VertexInputLayoutDescriptorBuilder::new(Some(VertexInputLayoutAllocationHint {
    bind_slot_count: 2,
    attribute_count: 3
}));

builder.add_buffer_slot(28, InputRate::PerVertex)
    .add_attribute(VertexAttributeDescriptor {
        location: 0,
        offset_in_bytes: 0,
        format: VertexAttributeFormat::Float4_f32
    })
    .add_attribute(VertexAttributeDescriptor {
        location: 1,
        offset_in_bytes: 16,
        format: VertexAttributeFormat::Float3_f32
    });

builder.add_buffer_slot(16, InputRate::PerInstance)
    .add_attribute(VertexAttributeDescriptor {
        location: 2,
        offset_in_bytes: 0,
        format: VertexAttributeFormat::Float4_f32
    });

let layout_descriptor = builder.finish();

Methods

impl VertexInputLayoutDescriptorBuilder[src]

pub fn new(allocation_hint: Option<VertexInputLayoutAllocationHint>) -> Self[src]

Creates a new builder.

Takes an optional allocation_hint to help reduce the number of allocations without over- allocating. With an accurate allocation hint the builder will only allocate once. See VertexInputLayoutAllocationHint for details.

pub fn add_buffer_slot(
    &mut self,
    stride: u8,
    input_rate: InputRate
) -> VertexBufferSlotAttributeAttacher
[src]

Adds a vertex buffer binding slot to the layout.

pub fn finish(self) -> VertexInputLayoutDescriptor[src]

Finishes building and returns the resulting VertexInputLayoutDescriptor.

Auto Trait Implementations

Blanket Implementations

impl<D, T> IntoBuffer<T> for D where
    D: Borrow<T> + 'static,
    T: Copy + 'static, 
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for 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.

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

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

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