gl-lite 0.1.2

Wrappers around common GL objects and methods
Documentation
use super::gli;

pub enum UniformValue {
  Float(f32),
  FloatVec2(f32, f32),
  FloatVec3(f32, f32, f32),
  FloatVec4(f32, f32, f32, f32),

  Int(i32),
  IntVec2(i32, i32),
  IntVec3(i32, i32, i32),
  IntVec4(i32, i32, i32, i32),

  Texture2D(u32),
}

pub fn set_value_for_uniform(location: u32, value: &UniformValue) {
  match value {
    UniformValue::Float(f) => gli::uniform_1f(location, *f),
    UniformValue::FloatVec2(x, y) => gli::uniform_2f(location, *x, *y),
    UniformValue::FloatVec3(x, y, z) => gli::uniform_3f(location, *x, *y, *z),
    UniformValue::FloatVec4(x, y, z, w) => gli::uniform_4f(location, *x, *y, *z, *w),
    UniformValue::Int(i) => gli::uniform_1i(location, *i),
    UniformValue::IntVec2(x, y) => gli::uniform_2i(location, *x, *y),
    UniformValue::IntVec3(x, y, z) => gli::uniform_3i(location, *x, *y, *z),
    UniformValue::IntVec4(x, y, z, w) => gli::uniform_4i(location, *x, *y, *z, *w),
    _ => (),
  }
}