1use winit::event::WindowEvent;
4
5#[derive(Debug, Clone)]
6pub enum EngineEvent {
7 Resized { width: u32, height: u32 },
8 ScaleFactorChanged { scale_factor: f64 },
9 CloseRequested,
10 Destroyed,
11 Focused(bool),
12}
13
14pub fn window_event_to_engine(event: &WindowEvent) -> Option<EngineEvent> {
15 match event {
16 WindowEvent::Resized(size) => Some(EngineEvent::Resized {
17 width: size.width,
18 height: size.height,
19 }),
20 WindowEvent::ScaleFactorChanged { scale_factor, .. } => {
21 Some(EngineEvent::ScaleFactorChanged {
22 scale_factor: *scale_factor,
23 })
24 }
25 WindowEvent::CloseRequested => Some(EngineEvent::CloseRequested),
26 WindowEvent::Destroyed => Some(EngineEvent::Destroyed),
27 WindowEvent::Focused(focused) => Some(EngineEvent::Focused(*focused)),
28 _ => None,
29 }
30}