maplibre/debug/
queue_system.rs1use crate::{
3 context::MapContext,
4 debug::{render_commands::DrawDebugOutlines, TileDebugItem},
5 render::{
6 eventually::{Eventually, Eventually::Initialized},
7 render_phase::{DrawState, RenderPhase},
8 tile_view_pattern::WgpuTileViewPattern,
9 },
10 tcs::system::{SystemError, SystemResult},
11};
12
13pub fn queue_system(MapContext { world, .. }: &mut MapContext) -> SystemResult {
14 let Some((Initialized(tile_view_pattern), tile_debug_phase)) = world.resources.query_mut::<(
15 &mut Eventually<WgpuTileViewPattern>,
16 &mut RenderPhase<TileDebugItem>,
17 )>() else {
18 return Err(SystemError::Dependencies);
19 };
20
21 for view_tile in tile_view_pattern.iter() {
22 let coords = &view_tile.coords();
23 tracing::trace!("Drawing debug at {coords}");
24
25 view_tile.render(|source_shape| {
27 tile_debug_phase.add(TileDebugItem {
29 draw_function: Box::new(DrawState::<TileDebugItem, DrawDebugOutlines>::new()),
30 source_shape: source_shape.clone(),
31 });
32 });
33 }
34
35 Ok(())
36}