vulkano_test/src/core/window/state.rs
Florian RICHER 4f6216635f
Some checks failed
Build legacy Nix package on Ubuntu / build (push) Failing after 26m34s
Update
2025-04-13 18:06:18 +02:00

45 lines
1.1 KiB
Rust

use bevy_ecs::world::World;
use winit::{
application::ApplicationHandler,
event::WindowEvent,
event_loop::ActiveEventLoop,
window::{Window, WindowId},
};
use crate::core::app::App;
use super::config::WindowConfig;
pub struct WindowState {
app: App,
window: Option<Window>,
}
impl WindowState {
pub fn new(app: App) -> Self {
Self { app, window: None }
}
fn world(&self) -> &World {
self.app.world()
}
}
impl ApplicationHandler for WindowState {
fn resumed(&mut self, event_loop: &ActiveEventLoop) {
let window_config = self.world().get_resource::<WindowConfig>().unwrap();
let window = event_loop.create_window(window_config.into()).unwrap();
self.window = Some(window);
}
fn window_event(&mut self, event_loop: &ActiveEventLoop, _id: WindowId, event: WindowEvent) {
match event {
WindowEvent::CloseRequested => {
log::debug!("The close button was pressed; stopping");
event_loop.exit();
}
_ => {}
}
}
}