Make ReRenderMsg take multiple ReRenderRequests

This commit is contained in:
Cameron Zwarich 2014-07-10 01:31:48 -07:00
parent 0f21d6be12
commit 8d56fa37be
2 changed files with 10 additions and 9 deletions

View file

@ -753,9 +753,7 @@ impl IOCompositor {
rect,
scale.get());
for (_pipeline_id, (chan, requests)) in request_map.move_iter() {
for request in requests.move_iter() {
let _ = chan.send_opt(ReRenderMsg(request));
}
let _ = chan.send_opt(ReRenderMsg(requests));
}
self.recomposite = self.recomposite || recomposite;
}

View file

@ -59,7 +59,7 @@ pub struct ReRenderRequest {
pub enum Msg {
RenderMsg(SmallVec1<RenderLayer>),
ReRenderMsg(ReRenderRequest),
ReRenderMsg(Vec<ReRenderRequest>),
UnusedBufferMsg(Vec<Box<LayerBuffer>>),
PaintPermissionGranted,
PaintPermissionRevoked,
@ -237,11 +237,14 @@ impl<C:RenderListener + Send> RenderTask<C> {
self.epoch,
self.render_layers.as_slice());
}
ReRenderMsg(ReRenderRequest { buffer_requests, scale, layer_id, epoch }) => {
if self.epoch == epoch {
self.render(buffer_requests, scale, layer_id);
} else {
debug!("renderer epoch mismatch: {:?} != {:?}", self.epoch, epoch);
ReRenderMsg(requests) => {
for ReRenderRequest { buffer_requests, scale, layer_id, epoch }
in requests.move_iter() {
if self.epoch == epoch {
self.render(buffer_requests, scale, layer_id);
} else {
debug!("renderer epoch mismatch: {:?} != {:?}", self.epoch, epoch);
}
}
}
UnusedBufferMsg(unused_buffers) => {