pub struct Shader {
pub program: u32,
pub uniforms_location: HashMap<String, i32>,
}
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§
Source§impl 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(&mut self, name: &str, v: UniformType)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Shader
impl RefUnwindSafe for Shader
impl Send for Shader
impl Sync for Shader
impl Unpin for Shader
impl UnwindSafe for Shader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more