pub struct MeshRenderer<'window> {Show 13 fields
    pub gpu_context: GpuContext,
    pub surface: Surface<'window>,
    pub surface_config: SurfaceConfiguration,
    pub pbr_pipeline: RenderPipeline,
    pub flat_pipeline: RenderPipeline,
    pub camera_uniform: MeshCameraUniform,
    pub camera_buffer: Buffer,
    pub lighting_params: MeshLightingParams,
    pub lighting_buffer: Buffer,
    pub bind_group_layout: BindGroupLayout,
    pub config: MeshRenderConfig,
    pub msaa_texture: Option<Texture>,
    pub msaa_view: Option<TextureView>,
}Expand description
GPU-accelerated mesh renderer with PBR and flat shading
Fields§
§gpu_context: GpuContext§surface: Surface<'window>§surface_config: SurfaceConfiguration§pbr_pipeline: RenderPipeline§flat_pipeline: RenderPipeline§camera_uniform: MeshCameraUniform§camera_buffer: Buffer§lighting_params: MeshLightingParams§lighting_buffer: Buffer§bind_group_layout: BindGroupLayout§config: MeshRenderConfig§msaa_texture: Option<Texture>§msaa_view: Option<TextureView>Implementations§
Source§impl<'window> MeshRenderer<'window>
 
impl<'window> MeshRenderer<'window>
Sourcepub async fn new(
    window: &'window Window,
    config: MeshRenderConfig,
) -> Result<Self>
 
pub async fn new( window: &'window Window, config: MeshRenderConfig, ) -> Result<Self>
Create new mesh renderer with PBR and flat shading support
Sourcepub fn update_camera(
    &mut self,
    view_matrix: Matrix4<f32>,
    proj_matrix: Matrix4<f32>,
    camera_pos: Vector3<f32>,
)
 
pub fn update_camera( &mut self, view_matrix: Matrix4<f32>, proj_matrix: Matrix4<f32>, camera_pos: Vector3<f32>, )
Update camera matrices and position
Sourcepub fn update_lighting(&mut self, params: MeshLightingParams)
 
pub fn update_lighting(&mut self, params: MeshLightingParams)
Update lighting parameters
Sourcepub fn resize(&mut self, new_size: PhysicalSize<u32>)
 
pub fn resize(&mut self, new_size: PhysicalSize<u32>)
Resize renderer
Sourcepub fn create_vertex_buffer(&self, vertices: &[MeshVertex]) -> Buffer
 
pub fn create_vertex_buffer(&self, vertices: &[MeshVertex]) -> Buffer
Create vertex buffer
Sourcepub fn create_index_buffer(&self, indices: &[u32]) -> Buffer
 
pub fn create_index_buffer(&self, indices: &[u32]) -> Buffer
Create index buffer
Sourcepub fn create_depth_texture(&self) -> Texture
 
pub fn create_depth_texture(&self) -> Texture
Create depth texture
Auto Trait Implementations§
impl<'window> !Freeze for MeshRenderer<'window>
impl<'window> !RefUnwindSafe for MeshRenderer<'window>
impl<'window> Send for MeshRenderer<'window>
impl<'window> Sync for MeshRenderer<'window>
impl<'window> Unpin for MeshRenderer<'window>
impl<'window> !UnwindSafe for MeshRenderer<'window>
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
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>
Convert 
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>
Convert 
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)
Convert 
&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)
Convert 
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
 
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
    SS: SubsetOf<SP>,
 
impl<SS, SP> SupersetOf<SS> for SPwhere
    SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
 
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct 
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
 
fn is_in_subset(&self) -> bool
Checks if 
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
 
fn to_subset_unchecked(&self) -> SS
Use with care! Same as 
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
 
fn from_subset(element: &SS) -> SP
The inclusion map: converts 
self to the equivalent element of its superset.