1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-01 22:30:03 -04:00

egui-wgpu cleanup

This commit is contained in:
Emil Ernerfeldt
2023-11-07 11:25:41 +01:00
parent 522cfb5767
commit 85c8708524
2 changed files with 11 additions and 9 deletions

View File

@@ -2607,7 +2607,7 @@ mod wgpu_integration {
viewport_maps viewport_maps
.borrow_mut() .borrow_mut()
.retain(|_, id| active_viewports_ids.contains(id)); .retain(|_, id| active_viewports_ids.contains(id));
painter.borrow_mut().clean_surfaces(&active_viewports_ids); painter.borrow_mut().gc_viewports(&active_viewports_ids);
let Some( let Some(
Viewport { Viewport {

View File

@@ -79,12 +79,14 @@ pub struct Painter {
msaa_samples: u32, msaa_samples: u32,
support_transparent_backbuffer: bool, support_transparent_backbuffer: bool,
depth_format: Option<wgpu::TextureFormat>, depth_format: Option<wgpu::TextureFormat>,
depth_texture_view: ViewportIdMap<wgpu::TextureView>,
msaa_texture_view: ViewportIdMap<wgpu::TextureView>,
screen_capture_state: Option<CaptureState>, screen_capture_state: Option<CaptureState>,
instance: wgpu::Instance, instance: wgpu::Instance,
render_state: Option<RenderState>, render_state: Option<RenderState>,
// Per viewport/window:
depth_texture_view: ViewportIdMap<wgpu::TextureView>,
msaa_texture_view: ViewportIdMap<wgpu::TextureView>,
surfaces: ViewportIdMap<SurfaceState>, surfaces: ViewportIdMap<SurfaceState>,
} }
@@ -120,11 +122,12 @@ impl Painter {
msaa_samples, msaa_samples,
support_transparent_backbuffer, support_transparent_backbuffer,
depth_format, depth_format,
depth_texture_view: Default::default(),
screen_capture_state: None, screen_capture_state: None,
instance, instance,
render_state: None, render_state: None,
depth_texture_view: Default::default(),
surfaces: Default::default(), surfaces: Default::default(),
msaa_texture_view: Default::default(), msaa_texture_view: Default::default(),
} }
@@ -625,13 +628,12 @@ impl Painter {
screenshot screenshot
} }
pub fn clean_surfaces(&mut self, available_viewports: &ViewportIdSet) { pub fn gc_viewports(&mut self, active_viewports: &ViewportIdSet) {
self.surfaces self.surfaces.retain(|id, _| active_viewports.contains(id));
.retain(|id, _| available_viewports.contains(id));
self.depth_texture_view self.depth_texture_view
.retain(|id, _| available_viewports.contains(id)); .retain(|id, _| active_viewports.contains(id));
self.msaa_texture_view self.msaa_texture_view
.retain(|id, _| available_viewports.contains(id)); .retain(|id, _| active_viewports.contains(id));
} }
#[allow(clippy::unused_self)] #[allow(clippy::unused_self)]