Skip to main content

FrameOutputs

Struct FrameOutputs 

Source
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: f32

How much of the previous frame survives — per second here, from the reference’s per-frame factor.

§gamma: f32

Multiplies the light on the way out.

§wrap: f32

Past 0.5, the past is toroidal.

§darken_center: f32

Darkens a soft disc at the middle of the frame.

§brighten: f32

Past 0.5, sqrt of the light.

§darken: f32

Past 0.5, the light squared.

§solarize: f32

Past 0.5, c * (1 - c) * 4.

§invert: f32

Past 0.5, 1 - c.

§echo_alpha: f32

How 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: f32

How far that copy is zoomed, about the frame centre.

§echo_orient: f32

How 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: f32

Which of the eight wave_mode figures the waveform draws.

§wave_x: f32

The waveform’s centre, in uv with y = 0 at the top.

§wave_y: f32

See wave_x.

§wave_r: f32

The waveform’s colour.

§wave_g: f32

See wave_r.

§wave_b: f32

See wave_r.

§wave_a: f32

The 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: f32

How far the trace swings. MilkDrop’s fWaveScale.

§wave_smoothing: f32

How much the trace is smoothed along its length, 0..1.

§wave_mystery: f32

The mode-dependent shape parameter, MilkDrop’s fWaveParam. Means a different thing in every wave_mode, which is the reference’s own design.

§wave_usedots: f32

Past 0.5, the trace is drawn as dots rather than a line.

§wave_thick: f32

Past 0.5, the trace is drawn thick.

§wave_additive: f32

Past 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: f32

Past 0.5, the trace’s colour is normalized to its brightest channel.

§ob_size: f32

The outer border’s thickness, as a fraction of the frame.

§ob_r: f32

The outer border’s colour.

§ob_g: f32

See ob_r.

§ob_b: f32

See ob_r.

§ob_a: f32

The outer border’s alpha, read as intensity.

§ib_size: f32

The inner border’s thickness.

§ib_r: f32

The inner border’s colour.

§ib_g: f32

See ib_r.

§ib_b: f32

See ib_r.

§ib_a: f32

The inner border’s alpha, read as intensity.

§mv_x: f32

How many motion vectors across.

§mv_y: f32

How many motion vectors down.

§mv_dx: f32

The grid’s offset within a cell, 0..1.

§mv_dy: f32

See mv_dx.

§mv_l: f32

Each vector’s length, as a multiple of the warp it samples.

§mv_r: f32

The grid’s colour.

§mv_g: f32

See mv_r.

§mv_b: f32

See mv_r.

§mv_a: f32

The grid’s alpha, read as intensity. 0 — the default — draws nothing.

Trait Implementations§

Source§

impl Clone for FrameOutputs

Source§

fn clone(&self) -> FrameOutputs

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FrameOutputs

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for FrameOutputs

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for FrameOutputs

Source§

fn eq(&self, other: &FrameOutputs) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for FrameOutputs

Source§

impl StructuralPartialEq for FrameOutputs

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,