pub struct DissolveTransitionNode {
pub mask: Vec<u8>,
pub to_rgba: Vec<u8>,
pub to_width: u32,
pub to_height: u32,
}Expand description
Per-pixel dissolve: clip B shows through wherever the supplied mask is set.
This is FFmpeg’s xfade=transition=dissolve. Unlike FadeTransitionNode every
output pixel is fully clip A or fully clip B, never a mixture of them — the node
selects, it does not blend.
It takes no progress of its own: which pixels have turned over is entirely the mask’s
decision, and ff_filter::dissolve_mask is what turns a progress into one.
Like its siblings this node renders to an Rgba8Unorm target (the shared
build_pipeline hard-codes that format), so it does not run in an Rgba16Float
graph.
Fields§
§mask: Vec<u8>Per-pixel selection as an RGBA mask: 255 shows clip B, 0 shows clip A.
Supplied rather than computed. FFmpeg’s dissolve keys off
fract(sinf(x*12.9898 + y*78.233) * 43758.545), whose argument reaches ~110 000
at 1080p – past where f32 holds it steadily, so the value is not reproducible
across implementations and a WGSL copy would reveal a different set of pixels
than the CPU reference. ff_filter::dissolve_mask builds this once and both
paths read it (#1732).
to_rgba: Vec<u8>Clip B as RGBA bytes (to_width × to_height × 4).
to_width: u32Width of to_rgba.
to_height: u32Height of to_rgba.
Implementations§
Trait Implementations§
Source§impl RenderNode for DissolveTransitionNode
Available on crate feature wgpu only.
impl RenderNode for DissolveTransitionNode
wgpu only.