[][src]Struct golem::ShaderProgram

pub struct ShaderProgram { /* fields omitted */ }

Methods

impl ShaderProgram[src]

pub fn new(
    ctx: &Context,
    desc: ShaderDescription
) -> Result<ShaderProgram, GolemError>
[src]

pub fn is_bound(&self) -> bool[src]

pub fn set_uniform(
    &self,
    name: &str,
    uniform: UniformValue
) -> Result<(), GolemError>
[src]

pub fn bind(&mut self, vb: &VertexBuffer)[src]

pub unsafe fn draw(
    &self,
    eb: &ElementBuffer,
    range: Range<usize>,
    geometry: GeometryMode
) -> Result<(), GolemError>
[src]

Draw the given elements from the element buffer to the screen with this shader

The range should fall within the elements of the buffer (which is checked for via an assert!.) The GeometryMode determines what the set of indices produces: triangles consumes 3 vertices into a filled triangle, lines consumes 2 vertices into a thin line, etc.

Safety

The source of unsafety is the range values in the ElementBuffer: if they are out of bounds of the VertexBuffer (see bind), this will result in out-of-bounds reads on the GPU and therefore undefined behavior. The caller is responsible for ensuring all elements are valid and in-bounds.

Trait Implementations

impl Drop for ShaderProgram[src]

Auto Trait Implementations

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.