FilterPlan

Struct FilterPlan 

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

Current 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

Source

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§

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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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.