pub struct StackingContextCollectionState {Show 13 fields
pub pipeline_id: PipelineId,
pub root_stacking_context: StackingContext,
stacking_context_info: FnvHashMap<StackingContextId, StackingContextInfo>,
pub clip_scroll_nodes: Vec<ClipScrollNode>,
pub current_stacking_context_id: StackingContextId,
pub current_real_stacking_context_id: StackingContextId,
pub next_stacking_context_id: StackingContextId,
pub current_parent_reference_frame_id: ClipScrollNodeIndex,
pub current_clipping_and_scrolling: ClippingAndScrolling,
pub containing_block_clipping_and_scrolling: ClippingAndScrolling,
pub clip_stack: Vec<Rect<Au>>,
pub containing_block_clip_stack: Vec<Rect<Au>>,
parent_stacking_relative_content_box: Rect<Au>,
}
Fields§
§pipeline_id: PipelineId
The PipelineId of this stacking context collection.
root_stacking_context: StackingContext
The root of the StackingContext tree.
stacking_context_info: FnvHashMap<StackingContextId, StackingContextInfo>
StackingContext and ClipScrollNode children for each StackingContext.
clip_scroll_nodes: Vec<ClipScrollNode>
§current_stacking_context_id: StackingContextId
The current stacking context id, used to keep track of state when building. recursively building and processing the display list.
current_real_stacking_context_id: StackingContextId
The current reference frame ClipScrollNodeIndex.
next_stacking_context_id: StackingContextId
The next stacking context id that we will assign to a stacking context.
current_parent_reference_frame_id: ClipScrollNodeIndex
The current reference frame id. This is used to assign items to the parent reference frame when we encounter a fixed position stacking context.
current_clipping_and_scrolling: ClippingAndScrolling
The current clip and scroll info, used to keep track of state when recursively building and processing the display list.
containing_block_clipping_and_scrolling: ClippingAndScrolling
The clip and scroll info of the first ancestor which defines a containing block. This is necessary because absolutely positioned items should be clipped by their containing block’s scroll root.
clip_stack: Vec<Rect<Au>>
A stack of clips used to cull display list entries that are outside the rendered region.
containing_block_clip_stack: Vec<Rect<Au>>
A stack of clips used to cull display list entries that are outside the rendered region, but only collected at containing block boundaries.
parent_stacking_relative_content_box: Rect<Au>
The flow parent’s content box, used to calculate sticky constraints.
Implementations§
source§impl StackingContextCollectionState
impl StackingContextCollectionState
pub fn new(pipeline_id: PipelineId) -> StackingContextCollectionState
fn allocate_stacking_context_info( &mut self, stacking_context_type: StackingContextType, ) -> StackingContextId
fn add_stacking_context( &mut self, parent_id: StackingContextId, stacking_context: StackingContext, )
fn add_clip_scroll_node( &mut self, clip_scroll_node: ClipScrollNode, ) -> ClipScrollNodeIndex
Auto Trait Implementations§
impl Freeze for StackingContextCollectionState
impl RefUnwindSafe for StackingContextCollectionState
impl Send for StackingContextCollectionState
impl Sync for StackingContextCollectionState
impl Unpin for StackingContextCollectionState
impl UnwindSafe for StackingContextCollectionState
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