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<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.