From 9d332655bef22bfd4612b152eab74c8e8ac0ce63 Mon Sep 17 00:00:00 2001 From: Jarrod Doyle Date: Thu, 25 Apr 2024 18:08:25 +0100 Subject: [PATCH] Use crawl context builder --- src/app.rs | 65 ----------------------------------------------------- src/main.rs | 26 +++++++++++++++++---- 2 files changed, 22 insertions(+), 69 deletions(-) delete mode 100644 src/app.rs diff --git a/src/app.rs b/src/app.rs deleted file mode 100644 index 9d81334..0000000 --- a/src/app.rs +++ /dev/null @@ -1,65 +0,0 @@ -use std::sync::Arc; - -use anyhow::Result; -use crawl::{ - wgpu, - winit::{ - self, - dpi::PhysicalSize, - event::{Event, WindowEvent}, - event_loop::EventLoop, - }, -}; - -pub struct App<'window> { - title: String, - event_loop: EventLoop<()>, - render_ctx: crawl::Context<'window>, -} - -impl<'window> App<'window> { - pub async fn new(width: u32, height: u32, title: &str) -> Result { - log::info!("Initialising window..."); - let size = PhysicalSize::new(width, height); - let event_loop = EventLoop::new()?; - let window = Arc::new( - winit::window::WindowBuilder::new() - .with_title(title) - .with_inner_size(size) - .build(&event_loop)?, - ); - - let render_ctx = crawl::Context::new( - window, - wgpu::Limits { - max_storage_buffer_binding_size: 1 << 30, - max_buffer_size: 1 << 30, - ..Default::default() - }, - ) - .await?; - - Ok(Self { - title: title.to_owned(), - event_loop, - render_ctx, - }) - } - - pub fn run(mut self) -> Result<()> { - self.event_loop.run(|event, elwt| match event { - Event::WindowEvent { window_id, event } if window_id == self.render_ctx.window.id() => { - if self.render_ctx.handle_window_event(&event, elwt) { - return; - } - - if let WindowEvent::RedrawRequested = event { - self.render_ctx.window.request_redraw(); - } - } - _ => (), - })?; - - Ok(()) - } -} diff --git a/src/main.rs b/src/main.rs index bd1171d..b2bee52 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,28 @@ -mod app; - use anyhow::Result; -use app::App; +use crawl::winit::event::{Event, WindowEvent}; fn main() -> Result<()> { env_logger::init(); - pollster::block_on(App::new(1280, 720, "Epic"))?.run()?; + let (mut context, event_loop) = pollster::block_on( + crawl::ContextBuilder::new() + .with_title("BEAVER") + .with_vsync(false) + .build(), + )?; + + event_loop.run(|event, elwt| match event { + Event::WindowEvent { window_id, event } if window_id == context.window.id() => { + if context.handle_window_event(&event, elwt) { + return; + } + + if let WindowEvent::RedrawRequested = event { + log::info!("Epic"); + context.window.request_redraw(); + } + } + _ => (), + })?; + Ok(()) }