aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/layout_thread.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-03-04 06:45:45 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2016-03-04 06:45:45 +0530
commit1c63bf9822d54cf95daa9921cda08f3b60521027 (patch)
treeab6923fdf4a9c7e270e67eb4b14d48bc27eb802c /components/layout/layout_thread.rs
parentaba500a698584e66975cd93006ca8cf745370f7d (diff)
parent5e17325e54bb85f4c8941a23e1bf15147784e019 (diff)
downloadservo-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.rs18
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))