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