Struct easy_opengl::shader::Shader
source · Expand description
A abstract representation of a shader
Example
let mut shader1 = Shader::new();
shader1.load_from_memory(VERTEX_SHADER_SOURCE, FRAGMENT_SHADER_SOURCE, None);
let mut shader2 = Shader::new();
shader2.load_from_file("./shaders/vertext.glsl", "./shaders/fragment.glsl", None);
shader1.set_uniform_int("entity_id", 33);
Fields
program: u32
uniforms_location: HashMap<String, i32>
Implementations
sourceimpl Shader
impl Shader
pub fn new() -> Self
pub fn bind(&self)
pub fn unbind(&self)
pub fn load_from_memory(
&mut self,
vertex_shader: &str,
fragment_shader: &str,
geo_shader: Option<&String>
) -> bool
pub fn load_from_file(
&mut self,
vertex_shader: &str,
fragment_shader: &str,
geo_shader: Option<&String>
) -> bool
pub fn set_uniform_int(&mut self, name: &str, v: &i32)
pub fn set_uniform_uint(&mut self, name: &str, v: &u32)
pub fn set_uniform_float(&mut self, name: &str, v: &f32)
pub fn set_uniform_vec2(&mut self, name: &str, x: &f32, y: &f32)
pub fn set_uniform_vec3(&mut self, name: &str, x: &f32, y: &f32, z: &f32)
pub fn set_uniform_vec4(&mut self, name: &str, x: &f32, y: &f32, z: &f32, w: &f32)
pub fn set_uniform_mat3(&mut self, name: &str, m: *const f32)
pub fn set_uniform_mat4(&mut self, name: &str, m: *const f32)
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Shader
impl Send for Shader
impl Sync for Shader
impl Unpin for Shader
impl UnwindSafe for Shader
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more