pub struct Gm<G: Geometry, M: Material> {
pub geometry: G,
pub material: M,
}
Expand description
A combination of a Geometry and a Material which implements Object. Use this to combine any geometry and material into an object that can be used in a render function for example RenderTarget::render. The only requirement is that the geometry provides all the per vertex information (normals, uv coordinates, etc.) that the material requires.
Fields§
§geometry: G
The geometry
material: M
The material applied to the geometry
Implementations§
Trait Implementations§
source§impl<G: Geometry, M: Material> Geometry for Gm<G, M>
impl<G: Geometry, M: Material> Geometry for Gm<G, M>
source§fn draw(
&self,
camera: &Camera,
program: &Program,
render_states: RenderStates,
attributes: FragmentAttributes
)
fn draw( &self, camera: &Camera, program: &Program, render_states: RenderStates, attributes: FragmentAttributes )
Draw this geometry.
source§fn vertex_shader_source(
&self,
required_attributes: FragmentAttributes
) -> String
fn vertex_shader_source( &self, required_attributes: FragmentAttributes ) -> String
Returns the vertex shader source for this geometry given that the fragment shader needs the given vertex attributes.
source§fn id(&self, required_attributes: FragmentAttributes) -> u16
fn id(&self, required_attributes: FragmentAttributes) -> u16
Returns a unique ID for each variation of the shader source returned from
Geometry::vertex_shader_source
. Read moresource§fn render_with_material(
&self,
material: &dyn Material,
camera: &Camera,
lights: &[&dyn Light]
)
fn render_with_material( &self, material: &dyn Material, camera: &Camera, lights: &[&dyn Light] )
Render the geometry with the given Material.
Must be called in the callback given as input to a RenderTarget, ColorTarget or DepthTarget write method.
Use an empty array for the
lights
argument, if the material does not require lights to be rendered.source§fn render_with_effect(
&self,
material: &dyn Effect,
camera: &Camera,
lights: &[&dyn Light],
color_texture: Option<ColorTexture<'_>>,
depth_texture: Option<DepthTexture<'_>>
)
fn render_with_effect( &self, material: &dyn Effect, camera: &Camera, lights: &[&dyn Light], color_texture: Option<ColorTexture<'_>>, depth_texture: Option<DepthTexture<'_>> )
Render the geometry with the given Effect.
Must be called in the callback given as input to a RenderTarget, ColorTarget or DepthTarget write method.
Use an empty array for the
lights
argument, if the material does not require lights to be rendered.source§fn aabb(&self) -> AxisAlignedBoundingBox
fn aabb(&self) -> AxisAlignedBoundingBox
Returns the AxisAlignedBoundingBox for this geometry in the global coordinate system.
source§impl<G: Geometry, M: Material> Object for Gm<G, M>
impl<G: Geometry, M: Material> Object for Gm<G, M>
source§fn render(&self, camera: &Camera, lights: &[&dyn Light])
fn render(&self, camera: &Camera, lights: &[&dyn Light])
Render the object.
Use an empty array for the
lights
argument, if the objects does not require lights to be rendered.
Must be called in the callback given as input to a RenderTarget, ColorTarget or DepthTarget write method.source§fn material_type(&self) -> MaterialType
fn material_type(&self) -> MaterialType
Returns the type of material applied to this object.
Auto Trait Implementations§
impl<G, M> RefUnwindSafe for Gm<G, M>where
G: RefUnwindSafe,
M: RefUnwindSafe,
impl<G, M> Send for Gm<G, M>
impl<G, M> Sync for Gm<G, M>
impl<G, M> Unpin for Gm<G, M>
impl<G, M> UnwindSafe for Gm<G, M>where
G: UnwindSafe,
M: UnwindSafe,
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