Skip to main content

render_dda_parallel

Function render_dda_parallel 

Source
pub fn render_dda_parallel(
    camera: &Camera,
    settings: &OpticastSettings,
    grid: GridView<'_>,
    fb: &mut [u32],
    zb: &mut [f32],
    pitch_pixels: usize,
    env: &DdaEnv<'_>,
    cache: &BrickCache,
    mip: u32,
)
Expand description

Tile-parallel render_dda writing straight into (fb, zb).

DDA pixels are independent, so the framebuffer splits into disjoint horizontal bands rendered concurrently (rayon) — bit-identical to the sequential render regardless of thread count, unlike voxlap’s per-strip discretisation. Each band spins up its own lightweight [Sampler] over the shared, immutable cache.

cache must already hold current brick maps for every chunk at mip (populate via BrickCache::ensure); mip is the effective render mip (effective_mip). (fb, zb) use the standard conventions (0x80RRGGBB; z = perp distance, smaller = closer); a miss writes nothing unless DdaEnv::sky is set. pitch_pixels is the row stride.