servo/components/layout
bors-servo 62814f7cb4 Auto merge of #9756 - mrobinson:flat-display-lists-webrender, r=pcwalton
Flatten display list structure

Instead of producing a tree of stacking contexts, display list
generation now produces a flat list of display items and a tree of
stacking contexts. This will eventually allow display list construction
to produce and modify WebRender vertex buffers directly, removing the
overhead of display list conversion.  This change also moves
layerization of the display list to the paint thread, since it isn't
currently useful for WebRender.

To accomplish this, display list generation now takes three passes of
the flow tree:

        1. Calculation of absolute positions.
        2. Collection of a tree of stacking contexts.
        3. Creation of a list of display items.

After collection of display items, they are sorted based upon the index
of their parent stacking contexts and their position in CSS 2.1
Appendeix E stacking order.

This is a big change, but it actually simplifies display list generation.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9756)
<!-- Reviewable:end -->
2016-03-02 06:21:08 +05:30
..
animation.rs Move AnimationState to script_traits 2016-01-13 18:14:12 -05:00
block.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
Cargo.toml Move util::range into its own crate 2016-02-25 21:06:10 -05:00
construct.rs Remove unused fixed_descendants: AbsoluteDescendants 2016-01-28 09:43:14 +01:00
context.rs Don't use image metadata for layout when rendering to a file 2016-02-25 13:47:27 -08:00
data.rs Refactor style to be completely backend-independent 2016-02-13 16:05:14 +01:00
display_list_builder.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
flex.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
floats.rs Move util::persistent_list to layout 2016-02-20 19:20:38 +01:00
flow.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
flow_list.rs Add Multicolumn support block fragmentation. 2016-01-28 09:43:14 +01:00
flow_ref.rs Remove explicit lifetimes which can be elided. 2015-10-21 01:27:48 +02:00
fragment.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
generated_content.rs Introduce a concept of restyle damage to the style system. 2016-01-04 09:38:04 -08:00
incremental.rs style: Refactor the per_pseudo map from StyleData to avoid having an option value type. 2016-02-13 16:05:17 +01:00
inline.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
layout_debug.rs Update to rustc 1.7.0-nightly (b4707ebca 2015-12-27) 2016-01-14 14:56:18 -06:00
layout_thread.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
lib.rs Move util::range into its own crate 2016-02-25 21:06:10 -05:00
list_item.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
model.rs Move util::logical_geometry to style 2016-02-18 10:17:13 +01:00
multicol.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
opaque_node.rs Replace OpaqueNodeMethods::from_{threadsafe_,}layout_node by opaque methods. 2015-06-24 14:55:43 +02:00
parallel.rs Remove parallel display list construction 2016-02-19 15:53:12 -08:00
persistent_list.rs Move util::persistent_list to layout 2016-02-20 19:20:38 +01:00
query.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
sequential.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
table.rs Auto merge of #9756 - mrobinson:flat-display-lists-webrender, r=pcwalton 2016-03-02 06:21:08 +05:30
table_caption.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
table_cell.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
table_colgroup.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
table_row.rs Auto merge of #9756 - mrobinson:flat-display-lists-webrender, r=pcwalton 2016-03-02 06:21:08 +05:30
table_rowgroup.rs Auto merge of #9756 - mrobinson:flat-display-lists-webrender, r=pcwalton 2016-03-02 06:21:08 +05:30
table_wrapper.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
text.rs Move util::range into its own crate 2016-02-25 21:06:10 -05:00
traversal.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
webrender_helpers.rs Flatten display list structure 2016-03-01 14:50:07 -08:00
wrapper.rs Dirty elements whose selectors are affected by sibling changes 2016-02-23 17:31:38 -08:00