y_engine/state/
mod.rs

1use winit::{event::WindowEvent, event_loop::ActiveEventLoop};
2
3pub mod common;
4/// When the users app is running
5pub(crate) mod running;
6/// Loading state (when splash screen is shown)
7mod starting;
8
9pub enum State {
10    None,
11    Starting(starting::State),
12    Running(running::State),
13}
14
15impl State {
16    pub fn new(event_loop: &ActiveEventLoop) -> Self {
17        Self::Starting(starting::State::new(event_loop))
18    }
19
20    pub fn handle_window_event(&mut self, event_loop: &ActiveEventLoop, event: WindowEvent) {
21        match self {
22            Self::Starting(state) => state.handle_window_event(event_loop, event),
23            Self::Running(state) => state.handle_window_event(event_loop, event),
24            Self::None => unreachable!(),
25        }
26    }
27}