Function decode_layers

Source
pub(crate) fn decode_layers(
    project: &Project,
    t: f64,
    w: u32,
    h: u32,
    pool: &mut DecoderPool,
    spare: &mut Vec<Frame>,
    text: &mut TextRasterizer,
    shapes: &mut ShapeRasterizer,
    comp: &mut Compositor,
) -> LayerSet
Expand description

Everything engine::gpu needs for one timeline instant (its LayerSet contract): one bitmap per visual clip on screen at tboth clips of a transition, which the renderer draws virtually extended past their own bounds — plus the subtitle bitmap under LayerSet::SUBTITLES. Media is decoded at the size the compositor would have used (placement, capped at the source’s native size); text/shape clips are rasterised and nested sequences composited on the CPU, all at (w, h) — which is already the quality-scaled render size, so gpu::render_size must not be applied again. Adjustment layers need no bitmap (they re-process the canvas). Effects that needs_motion() also get neighbours.