use std::sync::Arc; use app::App; use render::Renderer; use winit::{event::WindowEvent, event_loop::ActiveEventLoop, window::Window}; mod app; mod render; fn main() { App::run(); } pub struct Client { window: Arc, renderer: Renderer, } impl Client { pub fn new(window: Arc) -> Self { let renderer = Renderer::new(window.clone()); Self { window, renderer, } } pub fn event(&mut self, event: WindowEvent, event_loop: &ActiveEventLoop) { match event { WindowEvent::CloseRequested => event_loop.exit(), WindowEvent::RedrawRequested => self.renderer.draw(), WindowEvent::Resized(size) => self.renderer.resize(&size), _ => (), } } }