diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-03-04 06:45:45 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-03-04 06:45:45 +0530 |
commit | 1c63bf9822d54cf95daa9921cda08f3b60521027 (patch) | |
tree | ab6923fdf4a9c7e270e67eb4b14d48bc27eb802c /components/layout/layout_thread.rs | |
parent | aba500a698584e66975cd93006ca8cf745370f7d (diff) | |
parent | 5e17325e54bb85f4c8941a23e1bf15147784e019 (diff) | |
download | servo-1c63bf9822d54cf95daa9921cda08f3b60521027.tar.gz servo-1c63bf9822d54cf95daa9921cda08f3b60521027.zip |
Auto merge of #9861 - pcwalton:superflat, r=glennw
Flatten the WebRender API to allow us to use shared memory to transfer display lists.
Improves performance significantly.
Requires servo/webrender_traits#15 and servo/webrender#222.
r? @glennw
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9861)
<!-- Reviewable:end -->
Diffstat (limited to 'components/layout/layout_thread.rs')
-rw-r--r-- | components/layout/layout_thread.rs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/components/layout/layout_thread.rs b/components/layout/layout_thread.rs index f152fe6c695..a0ee55ece66 100644 --- a/components/layout/layout_thread.rs +++ b/components/layout/layout_thread.rs @@ -83,7 +83,7 @@ use util::thread; use util::thread_state; use util::workqueue::WorkQueue; use webrender_helpers::WebRenderDisplayListConverter; -use webrender_traits; +use webrender_traits::{self, AuxiliaryListsBuilder}; use wrapper::{LayoutNode, NonOpaqueStyleAndLayoutData, ServoLayoutNode, ThreadSafeLayoutNode}; /// The number of screens of data we're allowed to generate display lists for in each direction. @@ -931,12 +931,13 @@ impl LayoutThread { // TODO(gw) For now only create a root scrolling layer! let root_scroll_layer_id = webrender_traits::ScrollLayerId::new(pipeline_id, 0); - let sc_id = rw_data.display_list.as_ref() - .unwrap() - .convert_to_webrender(&self.webrender_api.as_ref().unwrap(), - pipeline_id, - epoch, - Some(root_scroll_layer_id)); + let mut auxiliary_lists_builder = AuxiliaryListsBuilder::new(); + let sc_id = rw_data.display_list.as_ref().unwrap().convert_to_webrender( + &self.webrender_api.as_ref().unwrap(), + pipeline_id, + epoch, + Some(root_scroll_layer_id), + &mut auxiliary_lists_builder); let root_background_color = webrender_traits::ColorF::new(root_background_color.r, root_background_color.g, root_background_color.b, @@ -949,7 +950,8 @@ impl LayoutThread { root_background_color, epoch, pipeline_id, - viewport_size); + viewport_size, + auxiliary_lists_builder.finalize()); } else { self.paint_chan .send(LayoutToPaintMsg::PaintInit(self.epoch, display_list)) |