From ca3f289de5d4eef79a7d5c236230e934a105bff0 Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 30 Dec 2023 19:06:36 -0800 Subject: [PATCH] Minor cleanup --- src/main.rs | 71 ++++++++++++++++++++++------------------------------- 1 file changed, 29 insertions(+), 42 deletions(-) diff --git a/src/main.rs b/src/main.rs index 7717fb5..ff9673e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,28 +24,19 @@ fn main() -> Result<()> { consts::STARFIELD_TEXTURE_NAME.to_owned(), )?; - pollster::block_on(run(content))?; - return Ok(()); -} - -async fn run(content: content::Content) -> Result<()> { let event_loop = EventLoop::new(); let window = WindowBuilder::new().build(&event_loop).unwrap(); + let mut gpu = pollster::block_on(render::GPUState::new(window, &content))?; - let mut gpu = render::GPUState::new(window, &content).await?; let mut game = game::Game::new(content); - gpu.update_starfield_buffer(&game); event_loop.run(move |event, _, control_flow| { match event { Event::RedrawRequested(window_id) if window_id == gpu.window().id() => { - game.update(); match gpu.render(&game) { Ok(_) => {} - // Reconfigure the surface if lost Err(wgpu::SurfaceError::Lost) => gpu.resize(&game, gpu.window_size), - // The system is out of memory, we should probably quit Err(wgpu::SurfaceError::OutOfMemory) => *control_flow = ControlFlow::Exit, // All other errors (Outdated, Timeout) should be resolved by the next frame Err(e) => eprintln!("{:?}", e), @@ -53,45 +44,41 @@ async fn run(content: content::Content) -> Result<()> { } Event::MainEventsCleared => { - // RedrawRequested will only trigger once unless we manually - // request it. + game.update(); gpu.window().request_redraw(); } Event::WindowEvent { ref event, window_id, - } if window_id == gpu.window.id() => { - match event { - WindowEvent::Focused(state) => { - game.set_paused(!state); - } - WindowEvent::CloseRequested => *control_flow = ControlFlow::Exit, - WindowEvent::KeyboardInput { - input: - KeyboardInput { - state, - virtual_keycode: Some(key), - .. - }, - .. - } => game.process_key(state, key), - WindowEvent::MouseInput { state, button, .. } => { - game.process_click(state, button); - } - WindowEvent::MouseWheel { delta, phase, .. } => { - game.process_scroll(delta, phase); - } - WindowEvent::Resized(physical_size) => { - gpu.resize(&game, *physical_size); - } - WindowEvent::ScaleFactorChanged { new_inner_size, .. } => { - // new_inner_size is &&mut so we have to dereference it twice - gpu.resize(&game, **new_inner_size); - } - _ => {} + } if window_id == gpu.window.id() => match event { + WindowEvent::Focused(state) => { + game.set_paused(!state); } - } + WindowEvent::CloseRequested => *control_flow = ControlFlow::Exit, + WindowEvent::KeyboardInput { + input: + KeyboardInput { + state, + virtual_keycode: Some(key), + .. + }, + .. + } => game.process_key(state, key), + WindowEvent::MouseInput { state, button, .. } => { + game.process_click(state, button); + } + WindowEvent::MouseWheel { delta, phase, .. } => { + game.process_scroll(delta, phase); + } + WindowEvent::Resized(physical_size) => { + gpu.resize(&game, *physical_size); + } + WindowEvent::ScaleFactorChanged { new_inner_size, .. } => { + gpu.resize(&game, **new_inner_size); + } + _ => {} + }, _ => {} } });