pub struct ScrollTreeNode {
pub parent: Option<ScrollTreeNodeId>,
pub children: Vec<ScrollTreeNodeId>,
pub webrender_id: Option<SpatialId>,
pub info: SpatialTreeNodeInfo,
transformation_cache: Cell<Option<ScrollTreeNodeTransformationCache>>,
}
Expand description
A node in a tree of scroll nodes. This may either be a scrollable node which responds to scroll events or a non-scrollable one.
Fields§
§parent: Option<ScrollTreeNodeId>
The index of the parent of this node in the tree. If this is None then this is the root node.
children: Vec<ScrollTreeNodeId>
The children of this ScrollTreeNode
.
webrender_id: Option<SpatialId>
The WebRender id, which is filled in when this tree is serialiezd into a WebRender display list.
info: SpatialTreeNodeInfo
Specific information about this node, depending on whether it is a scroll node or a reference frame.
transformation_cache: Cell<Option<ScrollTreeNodeTransformationCache>>
Cached transformation information that’s used to do things like hit testing and viewport bounding box calculation.
Implementations§
Source§impl ScrollTreeNode
impl ScrollTreeNode
Sourcepub fn webrender_id(&self) -> SpatialId
pub fn webrender_id(&self) -> SpatialId
Get the WebRender SpatialId
for the given [ScrollNodeId
]. This will
panic if [ScrollTree::build_display_list
] has not been called yet.
Sourcepub fn external_id(&self) -> Option<ExternalScrollId>
pub fn external_id(&self) -> Option<ExternalScrollId>
Get the external id of this node.
Sourcepub fn offset(&self) -> Option<LayoutVector2D>
pub fn offset(&self) -> Option<LayoutVector2D>
Get the offset id of this node if it applies.
Sourcefn scroll(
&mut self,
scroll_location: ScrollLocation,
context: ScrollType,
) -> Option<(ExternalScrollId, LayoutVector2D)>
fn scroll( &mut self, scroll_location: ScrollLocation, context: ScrollType, ) -> Option<(ExternalScrollId, LayoutVector2D)>
Scroll this node given a WebRender ScrollLocation. Returns a tuple that can be used to scroll an individual WebRender scroll frame if the operation actually changed an offset.
pub fn debug_print(&self, print_tree: &mut PrintTree, node_index: usize)
fn invalidate_cached_transforms( &self, scroll_tree: &ScrollTree, ancestors_invalid: bool, )
Trait Implementations§
Source§impl Debug for ScrollTreeNode
impl Debug for ScrollTreeNode
Source§impl<'de> Deserialize<'de> for ScrollTreeNode
impl<'de> Deserialize<'de> for ScrollTreeNode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl MallocSizeOf for ScrollTreeNode
impl MallocSizeOf for ScrollTreeNode
Source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Auto Trait Implementations§
impl !Freeze for ScrollTreeNode
impl !RefUnwindSafe for ScrollTreeNode
impl Send for ScrollTreeNode
impl !Sync for ScrollTreeNode
impl Unpin for ScrollTreeNode
impl UnwindSafe for ScrollTreeNode
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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