pub struct ShaderInstantiable<'a, G>where
G: Gl,{ /* private fields */ }Expand description
This is a shader-specific instantiable built from the vertices of an mod3d_base::Instantiable
A shader requires a VAO that maps some of the vertex attribute buffers to particular attribute UIDs in the shader program
It requires mapping of textures to texture things
Possibly it will also require some particullar Uniforms
An mod3d_base::Instance can be renderd with a shader by using the RenderRecipe from the mod3d_base::Instantiable, using the matrix and bone positions in the Instance, and using the VAOs and other data in the ShaderInstantiable.
It borrows from the mod3d_base::Instantiable and so does not need to its own GlBuffers
Implementations§
Source§impl<'a, G> ShaderInstantiable<'a, G>where
G: Gl,
impl<'a, G> ShaderInstantiable<'a, G>where
G: Gl,
Sourcepub fn new(
context: &mut G,
program: &'a G::Program,
instantiable: &'a Instantiable<G>,
) -> Result<Self, ()>
pub fn new( context: &mut G, program: &'a G::Program, instantiable: &'a Instantiable<G>, ) -> Result<Self, ()>
Create a new ShaderInstantiable
Sourcepub fn gl_draw(&self, context: &mut G, instance: &Instance<'_, G>)
pub fn gl_draw(&self, context: &mut G, instance: &Instance<'_, G>)
Draw this ShaderInstantiable given an mod3d_base::Instance data
Auto Trait Implementations§
impl<'a, G> Freeze for ShaderInstantiable<'a, G>
impl<'a, G> RefUnwindSafe for ShaderInstantiable<'a, G>where
<G as Gl>::Program: RefUnwindSafe,
<G as Gl>::Vao: RefUnwindSafe,
<G as Gl>::Texture: RefUnwindSafe,
<G as Gl>::Buffer: RefUnwindSafe,
impl<'a, G> !Send for ShaderInstantiable<'a, G>
impl<'a, G> !Sync for ShaderInstantiable<'a, G>
impl<'a, G> Unpin for ShaderInstantiable<'a, G>
impl<'a, G> UnwindSafe for ShaderInstantiable<'a, G>where
<G as Gl>::Program: RefUnwindSafe,
<G as Gl>::Vao: UnwindSafe,
<G as Gl>::Texture: RefUnwindSafe,
<G as Gl>::Buffer: RefUnwindSafe,
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