(
&mut self,
event_loop: &winit::event_loop::ActiveEventLoop,
_window_id: winit::window::WindowId,
event: WindowEvent,
)
| 119 | } |
| 120 | |
| 121 | fn window_event( |
| 122 | &mut self, |
| 123 | event_loop: &winit::event_loop::ActiveEventLoop, |
| 124 | _window_id: winit::window::WindowId, |
| 125 | event: WindowEvent, |
| 126 | ) { |
| 127 | self.simple_input.process_window_event(&event); |
| 128 | let mut events = std::mem::take(&mut self.signals.events); |
| 129 | events.iter_mut().for_each(|i| { |
| 130 | i.1.window_events(self, &event); |
| 131 | }); |
| 132 | std::mem::swap(&mut self.signals.events, &mut events); |
| 133 | |
| 134 | match event { |
| 135 | WindowEvent::CloseRequested => { |
| 136 | event_loop.exit(); |
| 137 | std::process::exit(0); |
| 138 | } |
| 139 | WindowEvent::Resized(size) => { |
| 140 | let size = (size.width, size.height); |
| 141 | self.renderer.resize(size); |
| 142 | self.camera.set_resolution(size); |
| 143 | self.camera.update_view_projection(&mut self.renderer); |
| 144 | } |
| 145 | WindowEvent::RedrawRequested => { |
| 146 | if self.window.should_close { |
| 147 | event_loop.exit(); |
| 148 | } |
| 149 | |
| 150 | if let Some(window_ref) = self.window.as_ref() { |
| 151 | let size = window_ref.inner_size(); |
| 152 | let size = (size.width, size.height); |
| 153 | if let Ok(Some((mut encoder, view, frame, headless_output))) = |
| 154 | self.renderer.pre_render(&self.objects, size, &self.camera) |
| 155 | { |
| 156 | let mut events = std::mem::take(&mut self.signals.events); |
| 157 | events.iter_mut().for_each(|i| { |
| 158 | i.1.frame(self, &mut encoder, &view); |
| 159 | }); |
| 160 | std::mem::swap(&mut self.signals.events, &mut events); |
| 161 | |
| 162 | for camera_value in self.camera.values_mut() { |
| 163 | camera_value.update_view_projection(&mut self.renderer); |
| 164 | } |
| 165 | self.objects.iter_mut().for_each(|i| { |
| 166 | if i.1.changed { |
| 167 | i.1.update(&mut self.renderer); |
| 168 | } |
| 169 | }); |
| 170 | |
| 171 | let mut update_function = self.update_loop.take(); |
| 172 | if let Some(ref mut update_function) = update_function { |
| 173 | update_function(self); |
| 174 | } |
| 175 | self.update_loop = update_function; |
| 176 | |
| 177 | self.renderer.render(encoder, frame, headless_output); |
| 178 | } |
nothing calls this directly
no test coverage detected