Struct layout_2013::display_list::builder::DisplayListBuildState
source · pub struct DisplayListBuildState<'a> {
pub layout_context: &'a LayoutContext<'a>,
pub root_stacking_context: StackingContext,
stacking_context_info: FnvHashMap<StackingContextId, StackingContextInfo>,
pub clip_scroll_nodes: Vec<ClipScrollNode>,
pub items: FnvHashMap<StackingContextId, Vec<DisplayItem>>,
pub processing_scrolling_overflow_element: bool,
pub current_stacking_context_id: StackingContextId,
pub current_clipping_and_scrolling: ClippingAndScrolling,
pub iframe_sizes: FnvHashMap<BrowsingContextId, Size2D<f32, CSSPixel>>,
pub indexable_text: IndexableText,
}
Fields§
§layout_context: &'a LayoutContext<'a>
A LayoutContext reference important for creating WebRender images.
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>
A vector of ClipScrollNodes which will be given ids during WebRender DL conversion.
items: FnvHashMap<StackingContextId, Vec<DisplayItem>>
The items in this display list.
processing_scrolling_overflow_element: bool
Whether or not we are processing an element that establishes scrolling overflow. Used to determine what ClipScrollNode to place backgrounds and borders into.
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_clipping_and_scrolling: ClippingAndScrolling
The current clip and scroll info, used to keep track of state when recursively building and processing the display list.
iframe_sizes: FnvHashMap<BrowsingContextId, Size2D<f32, CSSPixel>>
Vector containing iframe sizes, used to inform the constellation about new iframe sizes
indexable_text: IndexableText
Stores text runs to answer text queries used to place a cursor inside text.
Implementations§
source§impl<'a> DisplayListBuildState<'a>
impl<'a> DisplayListBuildState<'a>
pub fn new( layout_context: &'a LayoutContext<'_>, state: StackingContextCollectionState, ) -> DisplayListBuildState<'a>
pub fn add_display_item(&mut self, display_item: DisplayItem)
fn add_image_item(&mut self, base: BaseDisplayItem, item: ImageDisplayItem)
fn parent_clip_scroll_node_index( &self, index: ClipScrollNodeIndex, ) -> ClipScrollNodeIndex
fn is_background_or_border_of_clip_scroll_node( &self, section: DisplayListSection, ) -> bool
pub fn create_base_display_item( &self, clip_rect: Rect<Au>, node: OpaqueNode, unique_id: u64, cursor: Option<Cursor>, section: DisplayListSection, ) -> BaseDisplayItem
fn create_base_display_item_with_clipping_and_scrolling( &self, clip_rect: Rect<Au>, node: OpaqueNode, unique_id: u64, cursor: Option<Cursor>, section: DisplayListSection, clipping_and_scrolling: ClippingAndScrolling, ) -> BaseDisplayItem
fn add_late_clip_node( &mut self, rect: LayoutRect, radii: BorderRadius, ) -> ClipScrollNodeIndex
pub fn to_display_list(self) -> DisplayList
fn move_to_display_list_for_stacking_context( &mut self, list: &mut Vec<DisplayItem>, stacking_context: StackingContext, )
fn move_to_display_list_for_items( &mut self, list: &mut Vec<DisplayItem>, child_items: Vec<DisplayItem>, child_stacking_contexts: Vec<StackingContext>, )
fn clipping_and_scrolling_scope<R, F: FnOnce(&mut Self) -> R>( &mut self, function: F, ) -> R
Auto Trait Implementations§
impl<'a> Freeze for DisplayListBuildState<'a>
impl<'a> !RefUnwindSafe for DisplayListBuildState<'a>
impl<'a> Send for DisplayListBuildState<'a>
impl<'a> Sync for DisplayListBuildState<'a>
impl<'a> Unpin for DisplayListBuildState<'a>
impl<'a> !UnwindSafe for DisplayListBuildState<'a>
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