pub struct FilterPlan {
session: Session,
pub viewport: Viewport,
background_image: Option<SharedImageSurface>,
stroke_paint_image: Option<SharedImageSurface>,
fill_paint_image: Option<SharedImageSurface>,
}Expand description
Parameters using while rendering a whole filter property.
The filter property may contain a single primitive, like filter="blur(2px)", or a
list of filter specs like filter="blur(2px) url(#filter_id) drop_shadow(5 5)". Each
of those specs may produce more than one primitive; for example, the url(#filter_id)
there may refer to a <filter> element that has several primitives inside it. Also,
the drop_shadow() function will expand to the few primitives used to implement a
drop shadow.
Each filter spec will be rendered within a FilterContext, so that the context can
maintain the list of named outputs within a <filter> element, so that primitives can
feed their inputs and outputs into each other.
While rendering all those FilterContexts, there are some immutable parameters.
This FilterPlan struct contains those parameters. If at least one of the filter
primitives involved has an in
attribute
with a value of BackgroundImage/StrokePaint/FillPaint, then this struct will
also contain a pre-rendered image surface with the appropriate content. Pre-computing
those required “filler” images makes the code simple, since then the filters do not
need to call out again to the rendering code.
Fields§
§session: Session§viewport: ViewportCurrent viewport at the time the filter is invoked.
background_image: Option<SharedImageSurface>Surface corresponding to the background image snapshot, for in="BackgroundImage".
stroke_paint_image: Option<SharedImageSurface>Surface filled with the current stroke paint, for in="StrokePaint".
Filter Effects 1: https://www.w3.org/TR/filter-effects/#attr-valuedef-in-strokepaint
fill_paint_image: Option<SharedImageSurface>Surface filled with the current fill paint, for in="FillPaint".
Filter Effects 1: https://www.w3.org/TR/filter-effects/#attr-valuedef-in-fillpaint
Implementations§
Source§impl FilterPlan
impl FilterPlan
pub fn new( session: &Session, viewport: Viewport, requirements: InputRequirements, background_image: Option<SharedImageSurface>, stroke_paint_image: Option<SharedImageSurface>, fill_paint_image: Option<SharedImageSurface>, ) -> Result<FilterPlan, Box<InternalRenderingError>>
Auto Trait Implementations§
impl Freeze for FilterPlan
impl RefUnwindSafe for FilterPlan
impl !Send for FilterPlan
impl Sync for FilterPlan
impl Unpin for FilterPlan
impl UnwindSafe for FilterPlan
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.