[][src]Struct golem::ShaderDescription

pub struct ShaderDescription<'a> {
    pub vertex_input: &'a [Attribute],
    pub fragment_input: &'a [Attribute],
    pub uniforms: &'a [Uniform],
    pub vertex_shader: &'a str,
    pub fragment_shader: &'a str,
}

The parameters to create a ShaderProgram

Fields

vertex_input: &'a [Attribute]

The inputs to the vertex shader stage, which are also the inputs to the whole shader

fragment_input: &'a [Attribute]

The inputs to the fragment shader stage, which are also the outputs from the vertex shader

uniforms: &'a [Uniform]

The uniform values available to all shader stages, across all vertices of a draw call

Uniforms can be bound with ShaderProgram::set_uniform

vertex_shader: &'a str

The text of the vertex shader stage

Do not include the vertex inputs, outputs, or uniforms, use the vertex_input, fragment_input, and uniforms fields instead. Just provide the 'main' function, as well as any helpers. The shader inputs, outputs, and uniforms will be generated for you.

The inputs to this stage are defined as the vertex_input and the ouptuts are the fragment_input as well as gl_Position, a vec4 that represents the vertex's position.

fragment_shader: &'a str

The text of the fragment shader stage

See the documentation of the vertex_shader. The inputs to this stage are defined as the fragment_input and the ouptut is gl_FragColor, a vec4 that represents the RGBA color of the fragment. Use the function texture to read values from GLSL textures; it will be converted to texture2D on the web backend.

Auto Trait Implementations

impl<'a> RefUnwindSafe for ShaderDescription<'a>

impl<'a> Send for ShaderDescription<'a>

impl<'a> Sync for ShaderDescription<'a>

impl<'a> Unpin for ShaderDescription<'a>

impl<'a> UnwindSafe for ShaderDescription<'a>

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<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.