(&mut self, event_loop: &winit::event_loop::ActiveEventLoop)
| 28 | |
| 29 | impl ApplicationHandler for Engine { |
| 30 | fn resumed(&mut self, event_loop: &winit::event_loop::ActiveEventLoop) { |
| 31 | if self.window.is_none() { |
| 32 | // ? This should move to Window instead of here to clear the clutter |
| 33 | if let Ok(new_window) = event_loop.create_window(self.window.default_attributes.clone()) |
| 34 | { |
| 35 | let new_window = std::sync::Arc::new(new_window); |
| 36 | |
| 37 | if self.renderer.surface.is_none() { |
| 38 | if let Ok(surface) = self.renderer.instance.create_surface(new_window.clone()) { |
| 39 | let surface_capabilities = surface.get_capabilities(&self.renderer.adapter); |
| 40 | let tex_format = surface_capabilities |
| 41 | .formats |
| 42 | .iter() |
| 43 | .copied() |
| 44 | .find(|f| f.is_srgb()) |
| 45 | .unwrap_or(surface_capabilities.formats[0]); |
| 46 | |
| 47 | self.renderer.config.format = tex_format; |
| 48 | self.renderer.config.view_formats = vec![tex_format]; |
| 49 | |
| 50 | surface.configure(&self.renderer.device, &self.renderer.config); |
| 51 | self.renderer.depth_buffer = Renderer::build_depth_buffer( |
| 52 | "Depth Buffer", |
| 53 | &self.renderer.device, |
| 54 | &self.renderer.config, |
| 55 | ); |
| 56 | self.renderer.surface = Some(surface); |
| 57 | |
| 58 | self.renderer.build_default_data(); |
| 59 | self.objects.iter_mut().for_each(|i| { |
| 60 | i.1.update(&mut self.renderer); |
| 61 | }); |
| 62 | } |
| 63 | } |
| 64 | |
| 65 | new_window.set_min_inner_size(self.window.default_attributes.min_inner_size); |
| 66 | new_window.set_max_inner_size(self.window.default_attributes.max_inner_size); |
| 67 | if let Some(position) = self.window.default_attributes.position { |
| 68 | new_window.set_outer_position(position); |
| 69 | } |
| 70 | new_window.set_resizable(self.window.default_attributes.resizable); |
| 71 | new_window.set_enabled_buttons(self.window.default_attributes.enabled_buttons); |
| 72 | new_window.set_title(self.window.default_attributes.title.as_str()); |
| 73 | new_window.set_maximized(self.window.default_attributes.maximized); |
| 74 | new_window.set_visible(self.window.default_attributes.visible); |
| 75 | new_window.set_transparent(self.window.default_attributes.transparent); |
| 76 | new_window.set_blur(self.window.default_attributes.blur); |
| 77 | new_window.set_decorations(self.window.default_attributes.decorations); |
| 78 | new_window.set_window_icon(self.window.default_attributes.window_icon.clone()); |
| 79 | new_window.set_theme(self.window.default_attributes.preferred_theme); |
| 80 | new_window.set_resize_increments(self.window.default_attributes.resize_increments); |
| 81 | new_window.set_window_level(self.window.default_attributes.window_level); |
| 82 | new_window.set_cursor(self.window.default_attributes.cursor.clone()); |
| 83 | new_window.set_fullscreen(self.window.default_attributes.fullscreen.clone()); |
| 84 | |
| 85 | self.window.window = Some(new_window); |
| 86 | } |
| 87 |
nothing calls this directly
no test coverage detected