pub struct FrameOutputs {Show 44 fields
pub decay: f32,
pub gamma: f32,
pub wrap: f32,
pub darken_center: f32,
pub brighten: f32,
pub darken: f32,
pub solarize: f32,
pub invert: f32,
pub echo_alpha: f32,
pub echo_zoom: f32,
pub echo_orient: f32,
pub wave_mode: f32,
pub wave_x: f32,
pub wave_y: f32,
pub wave_r: f32,
pub wave_g: f32,
pub wave_b: f32,
pub wave_a: f32,
pub wave_scale: f32,
pub wave_smoothing: f32,
pub wave_mystery: f32,
pub wave_usedots: f32,
pub wave_thick: f32,
pub wave_additive: f32,
pub wave_brighten: f32,
pub ob_size: f32,
pub ob_r: f32,
pub ob_g: f32,
pub ob_b: f32,
pub ob_a: f32,
pub ib_size: f32,
pub ib_r: f32,
pub ib_g: f32,
pub ib_b: f32,
pub ib_a: f32,
pub mv_x: f32,
pub mv_y: f32,
pub mv_dx: f32,
pub mv_dy: f32,
pub mv_l: f32,
pub mv_r: f32,
pub mv_g: f32,
pub mv_b: f32,
pub mv_a: f32,
}Expand description
The values a program left in its output registers this frame, already converted out of MilkDrop’s per-frame vocabulary where that applies.
Default is MilkDrop’s own default for each, which is what the host
seeds before running a program — so an output the preset never writes
comes back as the reference’s resting value rather than as zero.
It is therefore unconverted, in the reference’s vocabulary, and is
not interchangeable with a value read returns. Anything comparing
the two must convert first.
Fields§
§decay: f32How much of the previous frame survives — per second here, from the reference’s per-frame factor.
gamma: f32Multiplies the light on the way out.
wrap: f32Past 0.5, the past is toroidal.
darken_center: f32Darkens a soft disc at the middle of the frame.
brighten: f32Past 0.5, sqrt of the light.
darken: f32Past 0.5, the light squared.
solarize: f32Past 0.5, c * (1 - c) * 4.
invert: f32Past 0.5, 1 - c.
echo_alpha: f32How much of a second sampled copy of the finished frame the composite
blends over the first. 0 is no echo at all, and is the identity.
echo_zoom: f32How far that copy is zoomed, about the frame centre.
echo_orient: f32How it is flipped: 0 none, 1 x, 2 y, 3 both. Quantized where it
is read, not here — see warp_mesh::echo_orientation.
wave_mode: f32Which of the eight wave_mode figures the waveform draws.
wave_x: f32The waveform’s centre, in uv with y = 0 at the top.
wave_y: f32See wave_x.
wave_r: f32The waveform’s colour.
wave_g: f32See wave_r.
wave_b: f32See wave_r.
wave_a: f32The waveform’s alpha. Under this engine’s additive draw it reads as intensity rather than as coverage — see the scene’s draw layer.
wave_scale: f32How far the trace swings. MilkDrop’s fWaveScale.
wave_smoothing: f32How much the trace is smoothed along its length, 0..1.
wave_mystery: f32The mode-dependent shape parameter, MilkDrop’s fWaveParam. Means a
different thing in every wave_mode, which is the reference’s own design.
wave_usedots: f32Past 0.5, the trace is drawn as dots rather than a line.
wave_thick: f32Past 0.5, the trace is drawn thick.
wave_additive: f32Past 0.5, the trace adds rather than blends, and this engine honours
the difference. The seam itself is additive by construction (ADR-0056), so
the alpha-blended case is matched at its steady state instead — see
warp_mesh::draw::Exposure,
which is where reading both cases as additive saturated the frame.
wave_brighten: f32Past 0.5, the trace’s colour is normalized to its brightest channel.
ob_size: f32The outer border’s thickness, as a fraction of the frame.
ob_r: f32The outer border’s colour.
ob_g: f32See ob_r.
ob_b: f32See ob_r.
ob_a: f32The outer border’s alpha, read as intensity.
ib_size: f32The inner border’s thickness.
ib_r: f32The inner border’s colour.
ib_g: f32See ib_r.
ib_b: f32See ib_r.
ib_a: f32The inner border’s alpha, read as intensity.
mv_x: f32How many motion vectors across.
mv_y: f32How many motion vectors down.
mv_dx: f32The grid’s offset within a cell, 0..1.
mv_dy: f32See mv_dx.
mv_l: f32Each vector’s length, as a multiple of the warp it samples.
mv_r: f32The grid’s colour.
mv_g: f32See mv_r.
mv_b: f32See mv_r.
mv_a: f32The grid’s alpha, read as intensity. 0 — the default — draws nothing.
Trait Implementations§
Source§impl Clone for FrameOutputs
impl Clone for FrameOutputs
Source§fn clone(&self) -> FrameOutputs
fn clone(&self) -> FrameOutputs
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FrameOutputs
impl Debug for FrameOutputs
Source§impl Default for FrameOutputs
impl Default for FrameOutputs
Source§impl PartialEq for FrameOutputs
impl PartialEq for FrameOutputs
Source§fn eq(&self, other: &FrameOutputs) -> bool
fn eq(&self, other: &FrameOutputs) -> bool
self and other values to be equal, and is used by ==.