pub enum FilterOp {
Blur(f32),
ColorMatrix([f32; 20]),
DropShadow(Shadow),
}Expand description
Una operación de filtro CSS (filter: blur()/brightness()/…) aplicada al
propio subárbol del nodo. A diferencia de backdrop_blur (que afecta lo
pintado debajo), un FilterOp modifica el contenido del nodo. El runtime
los aplica como post-pasada GPU sobre la intermediate, restringidos al rect
del nodo, en el orden de la lista. La lista crece por fase (CSS Filter
Effects 1): Blur (7.1232) + ColorMatrix (7.1233). Fase 7.1232.
Variants§
Blur(f32)
filter: blur(<px>). px es la desviación estándar del Gauss (igual
convención que CSS). Se aplica con BlurCompositor, el mismo camino que
backdrop_blur.
ColorMatrix([f32; 20])
Filtros de color (brightness/contrast/grayscale/sepia/saturate/
invert/hue-rotate/opacity) colapsados a una matriz de color 4×5
row-major: por fila [c0, c1, c2, c3, bias], salida R/G/B/A
(out = M·rgba + bias). Se aplica con ColorFilterCompositor. Fase
7.1233.
DropShadow(Shadow)
filter: drop-shadow(<ox> <oy> [blur] [color]). Se pinta como una sombra
Gaussiana del border-box detrás del nodo (con draw_blurred_rounded_rect,
igual primitiva que Shadow/box-shadow). v1: sombra del rect, no de la
silueta alpha del subárbol. A diferencia de Blur/ColorMatrix, NO es
post-pasada GPU — se pinta en vello antes del relleno, por lo que
collect_filters la ignora. Fase 7.1234.
Trait Implementations§
impl StructuralPartialEq for FilterOp
Auto Trait Implementations§
impl Freeze for FilterOp
impl RefUnwindSafe for FilterOp
impl Send for FilterOp
impl Sync for FilterOp
impl Unpin for FilterOp
impl UnsafeUnpin for FilterOp
impl UnwindSafe for FilterOp
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.