[][src]Struct luminance::shader::ProgramBuilder

pub struct ProgramBuilder<'a, C, Sem, Out, Uni> { /* fields omitted */ }

A Program builder.

This type allows to create shader programs without having to worry too much about the highly generic API.

Implementations

impl<'a, C, Sem, Out, Uni> ProgramBuilder<'a, C, Sem, Out, Uni> where
    C: GraphicsContext,
    C::Backend: Shader,
    Sem: Semantics
[src]

pub fn new(ctx: &'a mut C) -> Self[src]

Create a new ProgramBuilder from a GraphicsContext.

pub fn from_stages_env<'b, T, G, E>(
    &mut self,
    vertex: &'b Stage<C::Backend>,
    tess: T,
    geometry: G,
    fragment: &'b Stage<C::Backend>,
    env: &mut E
) -> Result<BuiltProgram<C::Backend, Sem, Out, Uni>, ProgramError> where
    Uni: UniformInterface<C::Backend, E>,
    T: Into<Option<TessellationStages<'b, Stage<C::Backend>>>>,
    G: Into<Option<&'b Stage<C::Backend>>>, 
[src]

Create a Program by linking Stages and accessing a mutable environment variable.

Parametricity

Notes

Feel free to look at the documentation of GraphicsContext::new_shader_program for a simpler interface.

pub fn from_stages<'b, T, G>(
    &mut self,
    vertex: &'b Stage<C::Backend>,
    tess: T,
    geometry: G,
    fragment: &'b Stage<C::Backend>
) -> Result<BuiltProgram<C::Backend, Sem, Out, Uni>, ProgramError> where
    Uni: UniformInterface<C::Backend>,
    T: Into<Option<TessellationStages<'b, Stage<C::Backend>>>>,
    G: Into<Option<&'b Stage<C::Backend>>>, 
[src]

Create a Program by linking Stages.

Parametricity

Notes

Feel free to look at the documentation of GraphicsContext::new_shader_program for a simpler interface.

pub fn from_strings_env<'b, T, G, E>(
    &mut self,
    vertex: &'b str,
    tess: T,
    geometry: G,
    fragment: &'b str,
    env: &mut E
) -> Result<BuiltProgram<C::Backend, Sem, Out, Uni>, ProgramError> where
    Uni: UniformInterface<C::Backend, E>,
    T: Into<Option<TessellationStages<'b, str>>>,
    G: Into<Option<&'b str>>, 
[src]

Create a Program by linking &strs and accessing a mutable environment variable.

Parametricity

Notes

Feel free to look at the documentation of GraphicsContext::new_shader_program for a simpler interface.

pub fn from_strings<'b, T, G>(
    &mut self,
    vertex: &'b str,
    tess: T,
    geometry: G,
    fragment: &'b str
) -> Result<BuiltProgram<C::Backend, Sem, Out, Uni>, ProgramError> where
    Uni: UniformInterface<C::Backend>,
    T: Into<Option<TessellationStages<'b, str>>>,
    G: Into<Option<&'b str>>, 
[src]

Create a Program by linking &strs.

Parametricity

Notes

Feel free to look at the documentation of GraphicsContext::new_shader_program for a simpler interface.

Auto Trait Implementations

impl<'a, C, Sem, Out, Uni> RefUnwindSafe for ProgramBuilder<'a, C, Sem, Out, Uni> where
    C: RefUnwindSafe,
    Out: RefUnwindSafe,
    Sem: RefUnwindSafe,
    Uni: RefUnwindSafe

impl<'a, C, Sem, Out, Uni> Send for ProgramBuilder<'a, C, Sem, Out, Uni> where
    C: Send,
    Out: Send,
    Sem: Send,
    Uni: Send

impl<'a, C, Sem, Out, Uni> Sync for ProgramBuilder<'a, C, Sem, Out, Uni> where
    C: Sync,
    Out: Sync,
    Sem: Sync,
    Uni: Sync

impl<'a, C, Sem, Out, Uni> Unpin for ProgramBuilder<'a, C, Sem, Out, Uni> where
    Out: Unpin,
    Sem: Unpin,
    Uni: Unpin

impl<'a, C, Sem, Out, Uni> !UnwindSafe for ProgramBuilder<'a, C, Sem, Out, Uni>

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.