Struct rsvg::layout::StackingContext
source · pub struct StackingContext {
pub element_name: String,
pub transform: Transform,
pub opacity: Opacity,
pub filter: Option<Filter>,
pub clip_rect: Option<Rect>,
pub clip_in_user_space: Option<Node<NodeData>>,
pub clip_in_object_space: Option<Node<NodeData>>,
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
§opacity: Opacity
§filter: Option<Filter>
§clip_rect: Option<Rect>
§clip_in_user_space: Option<Node<NodeData>>
§clip_in_object_space: Option<Node<NodeData>>
§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( session: &Session, acquired_nodes: &mut AcquiredNodes<'_>, element: &Element, transform: Transform, clip_rect: Option<Rect>, values: &ComputedValues, ) -> StackingContext
pub fn new_with_link( session: &Session, acquired_nodes: &mut AcquiredNodes<'_>, element: &Element, transform: Transform, values: &ComputedValues, 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.