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 !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
§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.