[][src]Trait glsl_layout::Uniform

pub trait Uniform: Copy {
    type Align: Copy + Default;
    type Std140: Std140;
    pub fn std140(&self) -> Self::Std140;
}

Structure to transform data from rust's structure to the raw data ready to upload to UBO. Users should prepfer to use derive(Uniform) instead of implementing this manually.

Associated Types

type Align: Copy + Default[src]

ZST that enforces alignment required for this type.

type Std140: Std140[src]

Type that contain same data with memory layout matching glsl's layout(std140).

Loading content...

Required methods

pub fn std140(&self) -> Self::Std140[src]

Get aligned data from structure.

Loading content...

Implementations on Foreign Types

impl<T> Uniform for [T; 0] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 0]>

impl<T> Uniform for [T; 1] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 1]>

impl<T> Uniform for [T; 2] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 2]>

impl<T> Uniform for [T; 3] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 3]>

impl<T> Uniform for [T; 4] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 4]>

impl<T> Uniform for [T; 5] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 5]>

impl<T> Uniform for [T; 6] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 6]>

impl<T> Uniform for [T; 7] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 7]>

impl<T> Uniform for [T; 8] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 8]>

impl<T> Uniform for [T; 9] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 9]>

impl<T> Uniform for [T; 10] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 10]>

impl<T> Uniform for [T; 11] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 11]>

impl<T> Uniform for [T; 12] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 12]>

impl<T> Uniform for [T; 13] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 13]>

impl<T> Uniform for [T; 14] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 14]>

impl<T> Uniform for [T; 15] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 15]>

impl<T> Uniform for [T; 16] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 16]>

impl<T> Uniform for [T; 17] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 17]>

impl<T> Uniform for [T; 18] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 18]>

impl<T> Uniform for [T; 19] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 19]>

impl<T> Uniform for [T; 20] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 20]>

impl<T> Uniform for [T; 21] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 21]>

impl<T> Uniform for [T; 22] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 22]>

impl<T> Uniform for [T; 23] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 23]>

impl<T> Uniform for [T; 24] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 24]>

impl<T> Uniform for [T; 25] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 25]>

impl<T> Uniform for [T; 26] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 26]>

impl<T> Uniform for [T; 27] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 27]>

impl<T> Uniform for [T; 28] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 28]>

impl<T> Uniform for [T; 29] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 29]>

impl<T> Uniform for [T; 30] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 30]>

impl<T> Uniform for [T; 31] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 31]>

impl<T> Uniform for [T; 32] where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 32]>

Loading content...

Implementors

impl Uniform for boolean[src]

type Align = Align4

type Std140 = boolean

impl Uniform for bvec2[src]

type Align = Align8

type Std140 = bvec2

impl Uniform for bvec3[src]

type Align = Align16

type Std140 = bvec3

impl Uniform for bvec4[src]

type Align = Align16

type Std140 = bvec4

impl Uniform for dvec2[src]

type Align = Align16

type Std140 = dvec2

impl Uniform for dvec3[src]

type Align = Align32

type Std140 = dvec3

impl Uniform for dvec4[src]

type Align = Align32

type Std140 = dvec4

impl Uniform for ivec2[src]

type Align = Align8

type Std140 = ivec2

impl Uniform for ivec3[src]

type Align = Align16

type Std140 = ivec3

impl Uniform for ivec4[src]

type Align = Align16

type Std140 = ivec4

impl Uniform for uvec2[src]

type Align = Align8

type Std140 = uvec2

impl Uniform for uvec3[src]

type Align = Align16

type Std140 = uvec3

impl Uniform for uvec4[src]

type Align = Align16

type Std140 = uvec4

impl Uniform for vec2[src]

type Align = Align8

type Std140 = vec2

impl Uniform for vec3[src]

type Align = Align16

type Std140 = vec3

impl Uniform for vec4[src]

type Align = Align16

type Std140 = vec4

impl Uniform for double[src]

type Align = Align8

type Std140 = double

impl Uniform for float[src]

type Align = Align4

type Std140 = float

impl Uniform for int[src]

type Align = Align4

type Std140 = int

impl Uniform for uint[src]

type Align = Align4

type Std140 = uint

impl<T> Uniform for Array<T, [Element<T>; 0]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 0]>

impl<T> Uniform for Array<T, [Element<T>; 1]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 1]>

impl<T> Uniform for Array<T, [Element<T>; 2]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 2]>

impl<T> Uniform for Array<T, [Element<T>; 3]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 3]>

impl<T> Uniform for Array<T, [Element<T>; 4]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 4]>

impl<T> Uniform for Array<T, [Element<T>; 5]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 5]>

impl<T> Uniform for Array<T, [Element<T>; 6]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 6]>

impl<T> Uniform for Array<T, [Element<T>; 7]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 7]>

impl<T> Uniform for Array<T, [Element<T>; 8]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 8]>

impl<T> Uniform for Array<T, [Element<T>; 9]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 9]>

impl<T> Uniform for Array<T, [Element<T>; 10]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 10]>

impl<T> Uniform for Array<T, [Element<T>; 11]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 11]>

impl<T> Uniform for Array<T, [Element<T>; 12]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 12]>

impl<T> Uniform for Array<T, [Element<T>; 13]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 13]>

impl<T> Uniform for Array<T, [Element<T>; 14]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 14]>

impl<T> Uniform for Array<T, [Element<T>; 15]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 15]>

impl<T> Uniform for Array<T, [Element<T>; 16]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 16]>

impl<T> Uniform for Array<T, [Element<T>; 17]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 17]>

impl<T> Uniform for Array<T, [Element<T>; 18]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 18]>

impl<T> Uniform for Array<T, [Element<T>; 19]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 19]>

impl<T> Uniform for Array<T, [Element<T>; 20]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 20]>

impl<T> Uniform for Array<T, [Element<T>; 21]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 21]>

impl<T> Uniform for Array<T, [Element<T>; 22]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 22]>

impl<T> Uniform for Array<T, [Element<T>; 23]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 23]>

impl<T> Uniform for Array<T, [Element<T>; 24]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 24]>

impl<T> Uniform for Array<T, [Element<T>; 25]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 25]>

impl<T> Uniform for Array<T, [Element<T>; 26]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 26]>

impl<T> Uniform for Array<T, [Element<T>; 27]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 27]>

impl<T> Uniform for Array<T, [Element<T>; 28]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 28]>

impl<T> Uniform for Array<T, [Element<T>; 29]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 29]>

impl<T> Uniform for Array<T, [Element<T>; 30]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 30]>

impl<T> Uniform for Array<T, [Element<T>; 31]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 31]>

impl<T> Uniform for Array<T, [Element<T>; 32]> where
    T: Uniform
[src]

type Align = Align16

type Std140 = Array<T::Std140, [Element<T::Std140>; 32]>

Loading content...