From 25255a8b9147d27aa40b28d6aadb62c0ab275d32 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Wed, 22 Apr 2026 15:40:32 -0400 Subject: simplify rendering pipeline. add gridlines to tacmap --- src/tacmap.rs | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) (limited to 'src/tacmap.rs') diff --git a/src/tacmap.rs b/src/tacmap.rs index e4cb76a..abae50e 100644 --- a/src/tacmap.rs +++ b/src/tacmap.rs @@ -17,6 +17,8 @@ use crate::canvas::Canvas; use crate::solar_system::SolarSystem; use crate::solar_system::SystemId; use crate::ui; +use crate::wgpuctx::RenderPassBuilder; +use crate::wgpuctx::SceneCtx; use crate::wgpuctx::WgpuCtx; use render::*; use camera::*; @@ -28,7 +30,8 @@ pub struct TacticalMap pmatrix: Projection, camera_controller: CameraController, - renderstate: Option<(SystemId, BodyRenderer)> + body_renderer: Option<(SystemId, BodyRenderer)>, + grid_renderer: GridRenderer } impl TacticalMap @@ -66,7 +69,8 @@ impl TacticalMap camera: camera, pmatrix: projection, camera_controller: CameraController::new(), - renderstate: None, + body_renderer: None, + grid_renderer: GridRenderer::new(wgpuctx) } } @@ -121,7 +125,7 @@ impl TacticalMap self.camera.update_buffer(wgpuctx, &self.pmatrix); - let tacrender = match &mut self.renderstate { + let body_renderer = match &mut self.body_renderer { Some((id, render)) => { if *id != current_system_id { *id = current_system_id; @@ -131,14 +135,14 @@ impl TacticalMap }, None => { let tmp = render::BodyRenderer::new(wgpuctx); - self.renderstate = Some((current_system_id, tmp)); - &mut self.renderstate.as_mut().unwrap().1 + self.body_renderer = Some((current_system_id, tmp)); + &mut self.body_renderer.as_mut().unwrap().1 } }; //Update buffers for the current system and time. - tacrender.rebuild(wgpuctx, current_system); - match tacrender.update( + body_renderer.rebuild(wgpuctx, current_system); + match body_renderer.update( wgpuctx, current_system, &self.camera, game_state.timeman().seconds()) { @@ -146,8 +150,19 @@ impl TacticalMap Err(e) => println!("Tactical map render update error: {}", e) } - tacrender.render(wgpuctx, &self.canvas, &self.camera); + let mut scene = SceneCtx::from_view_default(wgpuctx, self.canvas.view(), Some("Tactical map scene")); + let pass_builder = RenderPassBuilder::new(Some("Tactical map render pass"), scene.view()) + .clear_color(wgpu::Color { r: 0.0, g: 0.0, b: 0.1, a: 1.0 }); + self.camera.stage_changes(scene.encoder_mut()); + { + let mut pass = pass_builder.build_from_scene(&mut scene); + + self.grid_renderer.render(wgpuctx, &mut pass, &self.camera); + body_renderer.render(wgpuctx, &mut pass, &self.camera); + } + + scene.submit(wgpuctx); Ok(()) } -- cgit v1.2.3