diff --git a/src/components/compositing/compositor_data.rs b/src/components/compositing/compositor_data.rs index f5e8c1540d2..95b89b7a579 100644 --- a/src/components/compositing/compositor_data.rs +++ b/src/components/compositing/compositor_data.rs @@ -12,7 +12,7 @@ use geom::point::TypedPoint2D; use geom::rect::Rect; use geom::size::{Size2D, TypedSize2D}; use gfx::render_task; -use gfx::render_task::{ReRenderMsg, RenderChan, UnusedBufferMsg}; +use gfx::render_task::{ReRenderMsg, ReRenderRequest, RenderChan, UnusedBufferMsg}; use layers::layers::{Layer, Flip, LayerBuffer, LayerBufferSet, NoFlip, TextureLayer}; use layers::quadtree::Tile; use layers::platform::surface::{NativeCompositingGraphicsContext, NativeSurfaceMethods}; @@ -139,10 +139,12 @@ impl CompositorData { // // FIXME(#2003, pcwalton): We may want to batch these up in the case in which // one page has multiple layers, to avoid the user seeing inconsistent states. - let msg = ReRenderMsg(request, - scale, - layer.extra_data.borrow().id, - layer.extra_data.borrow().epoch); + let msg = ReRenderMsg(ReRenderRequest { + buffer_requests: request, + scale: scale, + layer_id: layer.extra_data.borrow().id, + epoch: layer.extra_data.borrow().epoch, + }); requests.push((layer.extra_data.borrow().pipeline.render_chan.clone(), msg)); } diff --git a/src/components/gfx/render_task.rs b/src/components/gfx/render_task.rs index d6c31bce048..a87a6738607 100644 --- a/src/components/gfx/render_task.rs +++ b/src/components/gfx/render_task.rs @@ -50,9 +50,16 @@ pub struct RenderLayer { pub scroll_policy: ScrollPolicy, } +pub struct ReRenderRequest { + pub buffer_requests: Vec, + pub scale: f32, + pub layer_id: LayerId, + pub epoch: Epoch, +} + pub enum Msg { RenderMsg(SmallVec1), - ReRenderMsg(Vec, f32, LayerId, Epoch), + ReRenderMsg(ReRenderRequest), UnusedBufferMsg(Vec>), PaintPermissionGranted, PaintPermissionRevoked, @@ -230,9 +237,9 @@ impl RenderTask { self.epoch, self.render_layers.as_slice()); } - ReRenderMsg(tiles, scale, layer_id, epoch) => { + ReRenderMsg(ReRenderRequest { buffer_requests, scale, layer_id, epoch }) => { if self.epoch == epoch { - self.render(tiles, scale, layer_id); + self.render(buffer_requests, scale, layer_id); } else { debug!("renderer epoch mismatch: {:?} != {:?}", self.epoch, epoch); }