aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/layout_interface.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2015-05-13 17:13:59 -0700
committerPatrick Walton <pcwalton@mimiga.net>2015-05-19 16:53:51 -0700
commit6a197719b30a5731b168b4ca5b6351f3d487d651 (patch)
tree96e5d1f6f3be89512dabbe055e03cf2409b116a7 /components/script/layout_interface.rs
parentacb9824229bf9e02eaabdb9d924f7db242a1ac85 (diff)
downloadservo-6a197719b30a5731b168b4ca5b6351f3d487d651.tar.gz
servo-6a197719b30a5731b168b4ca5b6351f3d487d651.zip
compositing: Implement display ports and avoid creating display lists
for items outside it. This improves Servo's performance on large pages.
Diffstat (limited to 'components/script/layout_interface.rs')
-rw-r--r--components/script/layout_interface.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/components/script/layout_interface.rs b/components/script/layout_interface.rs
index ad474a0daed..2ebb00d5cf8 100644
--- a/components/script/layout_interface.rs
+++ b/components/script/layout_interface.rs
@@ -11,6 +11,7 @@ use dom::node::LayoutData;
use geom::point::Point2D;
use geom::rect::Rect;
use libc::uintptr_t;
+use msg::compositor_msg::LayerId;
use msg::constellation_msg::{PipelineExitType, WindowSizeData};
use msg::compositor_msg::Epoch;
use net_traits::PendingAsyncLoad;
@@ -47,6 +48,10 @@ pub enum Msg {
/// Requests that the layout task render the next frame of all animations.
TickAnimations,
+ /// Updates the layout visible rects, affecting the area that display lists will be constructed
+ /// for.
+ SetVisibleRects(Vec<(LayerId, Rect<Au>)>),
+
/// Destroys layout data associated with a DOM node.
///
/// TODO(pcwalton): Maybe think about batching to avoid message traffic.