pub struct StackingContext {
pub element_name: String,
pub transform: Transform,
pub is_visible: bool,
pub opacity: Opacity,
pub filter: Option<Filter>,
pub clip_rect: Option<Rect>,
pub clip_in_object_space: Option<Node<NodeData>>,
pub clip_path: Option<ClipPath>,
pub mask: Option<Node<NodeData>>,
pub mix_blend_mode: MixBlendMode,
pub isolation: Isolation,
pub link_target: Option<String>,
}Expand description
SVG Stacking context, an inner node in the layout tree.
https://www.w3.org/TR/SVG2/render.html#EstablishingStackingContex
This is not strictly speaking an SVG2 stacking context, but a
looser version of it. For example. the SVG spec mentions that a
an element should establish a stacking context if the filter
property applies to the element and is not none. In that case,
the element is rendered as an “isolated group” -
https://www.w3.org/TR/2015/CR-compositing-1-20150113/#csscompositingrules_SVG
Here we store all the parameters that may lead to the decision to actually render an element as an isolated group.
Fields§
§element_name: String§transform: Transform§is_visible: bool§opacity: Opacity§filter: Option<Filter>§clip_rect: Option<Rect>§clip_in_object_space: Option<Node<NodeData>>§clip_path: Option<ClipPath>§mask: Option<Node<NodeData>>§mix_blend_mode: MixBlendMode§isolation: Isolation§link_target: Option<String>Target from an <a> element
Implementations§
Source§impl StackingContext
impl StackingContext
pub fn new( draw_ctx: &DrawingCtx, acquired_nodes: &mut AcquiredNodes<'_>, element: &Element, transform: Transform, clip_rect: Option<Rect>, values: &ComputedValues, viewport: &Viewport, ) -> StackingContext
pub fn new_with_link( draw_ctx: &DrawingCtx, acquired_nodes: &mut AcquiredNodes<'_>, element: &Element, transform: Transform, values: &ComputedValues, viewport: &Viewport, link_target: Option<String>, ) -> StackingContext
pub fn should_isolate(&self) -> bool
Auto Trait Implementations§
impl Freeze for StackingContext
impl !RefUnwindSafe for StackingContext
impl !Send for StackingContext
impl !Sync for StackingContext
impl Unpin for StackingContext
impl !UnwindSafe for StackingContext
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
Mutably borrows from an owned value. Read more
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>
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 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>
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
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
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
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
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.