| 309 | // ---- GPU picking pass ---- |
| 310 | |
| 311 | pub(crate) struct PickingPass { |
| 312 | // Render target holding u32 IDs |
| 313 | pick_texture: Option<Texture>, |
| 314 | pick_view: Option<TextureView>, |
| 315 | size_w: u32, |
| 316 | size_h: u32, |
| 317 | scale_factor: f32, |
| 318 | |
| 319 | // Pipeline for rendering marker IDs |
| 320 | pipeline: Option<RenderPipeline>, |
| 321 | |
| 322 | // Temporary staging buffer for readback (sync for now; tiny region) |
| 323 | staging: Option<Buffer>, |
| 324 | staging_size: u64, |
| 325 | |
| 326 | // Mapping from instance_id (draw instance) -> (span_index, local_pt_index) |
| 327 | id_map: Vec<(u32, u32)>, |
| 328 | |
| 329 | pending: Option<PendingReadback>, |
| 330 | } |
| 331 | |
| 332 | struct PendingReadback { |
| 333 | instance_id: u64, |
nothing calls this directly
no outgoing calls
no test coverage detected