Use crawl context builder
This commit is contained in:
		
							parent
							
								
									7787a8b69e
								
							
						
					
					
						commit
						9d332655be
					
				
							
								
								
									
										65
									
								
								src/app.rs
								
								
								
								
							
							
						
						
									
										65
									
								
								src/app.rs
								
								
								
								
							|  | @ -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<Self> { |  | ||||||
|         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(()) |  | ||||||
|     } |  | ||||||
| } |  | ||||||
							
								
								
									
										26
									
								
								src/main.rs
								
								
								
								
							
							
						
						
									
										26
									
								
								src/main.rs
								
								
								
								
							|  | @ -1,10 +1,28 @@ | ||||||
| mod app; |  | ||||||
| 
 |  | ||||||
| use anyhow::Result; | use anyhow::Result; | ||||||
| use app::App; | use crawl::winit::event::{Event, WindowEvent}; | ||||||
| 
 | 
 | ||||||
| fn main() -> Result<()> { | fn main() -> Result<()> { | ||||||
|     env_logger::init(); |     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(()) |     Ok(()) | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue