Skip to main content

LayerNode

Struct LayerNode 

Source
pub struct LayerNode {
Show 21 fields pub node_id: Option<NodeId>, pub wraps: Option<NodeId>, pub local_bounds: Rect, pub transform_to_parent: ProjectiveTransform, pub content_offset: Point, pub motion_context_animated: bool, pub translated_content_context: bool, pub translated_content_offset: Point, pub origin_in_parent: Point, pub graphics_layer: GraphicsLayer, pub clip_to_bounds: bool, pub shadow_clip: Option<Rect>, pub hit_test: Option<HitTestNode>, pub has_hit_targets: bool, pub has_origin_sinks: bool, pub draws_within_bounds: bool, pub isolation: IsolationReasons, pub cache_policy: CachePolicy, pub cache_hashes: LayerRasterCacheHashes, pub cache_hashes_valid: bool, pub children: Vec<RenderNode>,
}

Fields§

§node_id: Option<NodeId>§wraps: Option<NodeId>

Set on the synthetic layer that holds a node’s outer draws, those chained before its graphics layer, around that node’s own layer. Scene updates address the node through this id because the node’s layer has none of the outer draws and the wrapper has no node id of its own.

§local_bounds: Rect§transform_to_parent: ProjectiveTransform§content_offset: Point§motion_context_animated: bool§translated_content_context: bool§translated_content_offset: Point§origin_in_parent: Point

Where layout placed this layer within its parent’s content, before the parent’s content offset. Scene updates add these up from the root, with each layer’s content offset and graphics-layer translation, to find the window origin of a subtree they rebuild.

§graphics_layer: GraphicsLayer§clip_to_bounds: bool§shadow_clip: Option<Rect>§hit_test: Option<HitTestNode>§has_hit_targets: bool§has_origin_sinks: bool

Whether this subtree publishes live window origins (a text field’s popup anchor, a scroll container’s viewport rect). Those sinks are written during a full lowering, so the scroll fast path may translate a retained subtree in place only when this is false.

§draws_within_bounds: bool

Whether everything this layer and its subtree draw lies within its local_bounds, give or take CONTAINED_DRAW_SLACK, so a renderer may skip the whole subtree where those bounds are clipped away. Scene building keeps it current; false promises nothing.

§isolation: IsolationReasons§cache_policy: CachePolicy§cache_hashes: LayerRasterCacheHashes§cache_hashes_valid: bool§children: Vec<RenderNode>

Implementations§

Source§

impl LayerNode

Source

pub fn content_draws_within_bounds(&self) -> bool

Whether this layer’s content, as LayerNode::draws_within_bounds describes it, stays within its bounds: it clips to them, or its draws, its texts and its children placed where they are all fit inside.

Source

pub fn clip_rect(&self) -> Option<Rect>

Source

pub fn effect(&self) -> Option<&RenderEffect>

Source

pub fn backdrop(&self) -> Option<&RenderEffect>

Source

pub fn opacity(&self) -> f32

Source

pub fn blend_mode(&self) -> BlendMode

Source

pub fn color_filter(&self) -> Option<ColorFilter>

Source

pub fn target_content_hash(&self) -> u64

Source

pub fn motion_source_content_hash(&self) -> u64

Source

pub fn effect_hash(&self) -> u64

Source

pub fn recompute_raster_cache_hashes(&mut self)

Trait Implementations§

Source§

impl Clone for LayerNode

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for LayerNode

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.