Struct frenderer::meshes::FlatRenderer
source · pub struct FlatRenderer { /* private fields */ }
Expand description
Renders groups of 3D meshes with flat colors and no lighting.
Implementations§
source§impl FlatRenderer
impl FlatRenderer
sourcepub fn new(
gpu: &WGPU,
color_target: ColorTargetState,
depth_format: TextureFormat
) -> Self
pub fn new( gpu: &WGPU, color_target: ColorTargetState, depth_format: TextureFormat ) -> Self
Creates a new FlatRenderer
meant to draw into the given color target state with the given depth texture format.
sourcepub fn set_camera(&mut self, gpu: &WGPU, camera: Camera3D)
pub fn set_camera(&mut self, gpu: &WGPU, camera: Camera3D)
Sets the given camera for all mesh groups.
sourcepub fn add_mesh_group(
&mut self,
gpu: &WGPU,
material_colors: &[[f32; 4]],
vertices: Vec<FlatVertex>,
indices: Vec<u32>,
mesh_info: Vec<MeshEntry>
) -> MeshGroup
pub fn add_mesh_group( &mut self, gpu: &WGPU, material_colors: &[[f32; 4]], vertices: Vec<FlatVertex>, indices: Vec<u32>, mesh_info: Vec<MeshEntry> ) -> MeshGroup
Add a mesh group with the given array of material colors. All
meshes in the group pull from the same vertex buffer, and each
submesh is defined in terms of a range of indices within that
buffer. When loading your mesh resources from whatever format
they’re stored in, fill out vertex and index vecs while
tracking the beginning and end of each mesh and submesh (see
MeshEntry
for details).
sourcepub fn resize_group_mesh(
&mut self,
gpu: &WGPU,
which: MeshGroup,
mesh_idx: usize,
len: usize
) -> usize
pub fn resize_group_mesh( &mut self, gpu: &WGPU, which: MeshGroup, mesh_idx: usize, len: usize ) -> usize
Change the number of instances of the given mesh of the given mesh group.
sourcepub fn mesh_group_count(&self) -> usize
pub fn mesh_group_count(&self) -> usize
Returns how many mesh groups there are.
sourcepub fn mesh_count(&self, which: MeshGroup) -> usize
pub fn mesh_count(&self, which: MeshGroup) -> usize
Returns how many meshes there are in the given mesh group.
sourcepub fn mesh_instance_count(&self, which: MeshGroup, mesh_number: usize) -> usize
pub fn mesh_instance_count(&self, which: MeshGroup, mesh_number: usize) -> usize
Returns how many mesh instances there are in the given mesh of the given mesh group.
sourcepub fn get_meshes(&self, which: MeshGroup, mesh_number: usize) -> &[Transform3D]
pub fn get_meshes(&self, which: MeshGroup, mesh_number: usize) -> &[Transform3D]
Gets the transforms of every instance of the given mesh of a mesh group.
sourcepub fn get_meshes_mut(
&mut self,
which: MeshGroup,
mesh_number: usize
) -> &mut [Transform3D]
pub fn get_meshes_mut( &mut self, which: MeshGroup, mesh_number: usize ) -> &mut [Transform3D]
Gets the (mutable) transforms of every instance of the given mesh of a mesh group.
sourcepub fn remove_mesh_group(&mut self, which: MeshGroup)
pub fn remove_mesh_group(&mut self, which: MeshGroup)
Deletes a mesh group, leaving its slot free to be reused.
sourcepub fn upload_meshes(
&mut self,
gpu: &WGPU,
which: MeshGroup,
mesh_number: usize,
range: impl RangeBounds<usize>
)
pub fn upload_meshes( &mut self, gpu: &WGPU, which: MeshGroup, mesh_number: usize, range: impl RangeBounds<usize> )
Uploads a range of instance data for the given mesh of a given mesh group.
sourcepub fn upload_meshes_group(&mut self, gpu: &WGPU, which: MeshGroup)
pub fn upload_meshes_group(&mut self, gpu: &WGPU, which: MeshGroup)
Uploads instance data for all the meshes of a given mesh group.
sourcepub fn render<'s, 'pass>(
&'s self,
rpass: &mut RenderPass<'pass>,
which: impl RangeBounds<usize>
)where
's: 'pass,
pub fn render<'s, 'pass>(
&'s self,
rpass: &mut RenderPass<'pass>,
which: impl RangeBounds<usize>
)where
's: 'pass,
Renders the given range of mesh groups into the given wgpu::RenderPass
.
Auto Trait Implementations§
impl !Freeze for FlatRenderer
impl !RefUnwindSafe for FlatRenderer
impl Send for FlatRenderer
impl Sync for FlatRenderer
impl Unpin for FlatRenderer
impl !UnwindSafe for FlatRenderer
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
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.