Batch ReRenderRequests rather than render_task::Msg

Make get_buffer_requests_recursively create a ReRenderRequest rather
than a ReRenderMsg, and have its caller create the ReRenderMsg from
the ReRenderRequest.
This commit is contained in:
Cameron Zwarich 2014-07-10 01:31:47 -07:00
parent 5611e34379
commit 25e8077681
2 changed files with 7 additions and 7 deletions

View file

@ -26,6 +26,7 @@ use geom::point::{Point2D, TypedPoint2D};
use geom::rect::Rect;
use geom::size::TypedSize2D;
use geom::scale_factor::ScaleFactor;
use gfx::render_task::ReRenderMsg;
use layers::layers::LayerBufferSet;
use layers::platform::surface::NativeCompositingGraphicsContext;
use layers::rendergl;
@ -750,8 +751,8 @@ impl IOCompositor {
&self.graphics_context,
rect,
scale.get());
for (chan, msg) in requests.move_iter() {
let _ = chan.send_opt(msg);
for (chan, request) in requests.move_iter() {
let _ = chan.send_opt(ReRenderMsg(request));
}
self.recomposite = self.recomposite || recomposite;
}

View file

@ -11,8 +11,7 @@ use geom::matrix::identity;
use geom::point::TypedPoint2D;
use geom::rect::Rect;
use geom::size::{Size2D, TypedSize2D};
use gfx::render_task;
use gfx::render_task::{ReRenderMsg, ReRenderRequest, RenderChan, UnusedBufferMsg};
use gfx::render_task::{ReRenderRequest, RenderChan, UnusedBufferMsg};
use layers::layers::{Layer, Flip, LayerBuffer, LayerBufferSet, NoFlip, TextureLayer};
use layers::quadtree::Tile;
use layers::platform::surface::{NativeCompositingGraphicsContext, NativeSurfaceMethods};
@ -121,7 +120,7 @@ impl CompositorData {
// Given the current window size, determine which tiles need to be (re-)rendered and sends them
// off the the appropriate renderer. Returns true if and only if the scene should be repainted.
pub fn get_buffer_requests_recursively(requests: &mut Vec<(RenderChan, render_task::Msg)>,
pub fn get_buffer_requests_recursively(requests: &mut Vec<(RenderChan, ReRenderRequest)>,
layer: Rc<Layer<CompositorData>>,
graphics_context: &NativeCompositingGraphicsContext,
window_rect: Rect<f32>,
@ -139,12 +138,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(ReRenderRequest {
let msg = 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));
}