//! Promotion candidate extraction pass.

use super::buffers::GpuPhysicsBuffers;

/// Promotion candidate read back from GPU.
#[derive(Debug, Clone)]
pub struct PromotionCandidate {
    pub particle_index: u32,
    pub emitter_id: u32,
    pub position: [f32; 3],
    pub age: f32,
    pub flags: u32,
}

pub struct PromotionExtractionPass {
    _placeholder: (),
}

impl PromotionExtractionPass {
    pub fn new(_device: &wgpu::Device) -> Self {
        Self { _placeholder: () }
    }

    pub fn dispatch(&self, _queue: &wgpu::Queue, _encoder: &mut wgpu::CommandEncoder, _buffers: &GpuPhysicsBuffers) {
        // Promotion extraction dispatch using particle_promote.wgsl.
    }
}
