From a779011b9048cdda04887c77e20ee8936f332a7a Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Tue, 25 Aug 2026 00:32:16 -0700 Subject: vfx pipeline --- src/main.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index ccca2db..6e6c9d9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,7 @@ mod content; mod input; mod renderer; mod sim; +mod vfx; use futures::executor; use std::{collections::VecDeque, sync::Arc, time::Instant}; @@ -30,6 +31,7 @@ use crate::{ }, renderer::RendererState, sim::{rb_manager::DebugRenderMode, sim_manager::SimManager}, + vfx::VfxManager, }; pub type Error = Box; @@ -58,6 +60,7 @@ struct App { // game input_manager: InputManager, camera: Option, + vfx_manager: Option, sim_manager: Option, // renderer @@ -77,7 +80,9 @@ impl App { camera.handle_camera_input(&self.input_manager, delta_time) } - if let Some(sim) = &mut self.sim_manager { + if let Some(sim) = &mut self.sim_manager + && let Some(vfx_manager) = &mut self.vfx_manager + { // --TEST SPAWNING-- if self.input_manager.pressed(Input::Action1) { sim.create_entity(entity_cube_def( @@ -97,7 +102,7 @@ impl App { )); } - sim.update(&self.config, &self.input_manager, delta_time); + sim.update(vfx_manager, &self.config, &self.input_manager, delta_time); self.input_manager.reset_for_frame(); } } @@ -113,6 +118,7 @@ impl Default for App { camera: None, + vfx_manager: Some(VfxManager::new()), sim_manager: Some(SimManager::new()), last_render: Instant::now(), @@ -206,15 +212,19 @@ impl ApplicationHandler for App { if let Some(renderer_state) = &mut self.renderer_state && let Some(sim) = &mut self.sim_manager + && let Some(vfx) = &mut self.vfx_manager && let Some(camera) = &mut self.camera { renderer_state.render( sim, + vfx, camera, &mut self.config, &self.diagnostics, &self.input_manager, ); + + vfx.after_render(delta_time); } } _ => {} -- cgit v1.3.1