pub enum FilterSpec {
Grayscale(f64),
Invert(f64),
Sepia(f64),
Saturate(f64),
Brightness(f64),
Contrast(f64),
HueRotate(f64),
Duotone {
amount: f64,
shadow: Color,
highlight: Color,
},
Noise {
amount: f64,
seed: i64,
scale: f64,
},
}Expand description
A single color-filter operation applied to captured ink (straight-alpha math).
Each variant carries its already-resolved scalar payload (the per-kind
amount, defaults substituted at compile time). Duotone additionally
carries its two resolved colors — the scene IR stays decoupled from the core
AST, exactly as ShadowSpec carries a scene-local Color rather than a
color-token id. The compile step maps core → scene.
Variants§
Grayscale(f64)
Invert(f64)
Sepia(f64)
Saturate(f64)
Brightness(f64)
Contrast(f64)
HueRotate(f64)
Duotone
Maps luma to a blend between shadow (dark) and highlight (light),
then mixes with the original by amount.
Noise
Deterministic monochrome additive film grain: adds the same per-pixel
delta to R, G, and B, derived from an integer hash of the page-absolute
pixel cell and seed. amount scales the grain magnitude; scale is the
grain cell size in pixels. Same inputs → same grain on any machine.
Trait Implementations§
Source§impl Clone for FilterSpec
impl Clone for FilterSpec
Source§fn clone(&self) -> FilterSpec
fn clone(&self) -> FilterSpec
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for FilterSpec
Source§impl Debug for FilterSpec
impl Debug for FilterSpec
Source§impl PartialEq for FilterSpec
impl PartialEq for FilterSpec
Source§fn eq(&self, other: &FilterSpec) -> bool
fn eq(&self, other: &FilterSpec) -> bool
self and other values to be equal, and is used by ==.