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, rect,
scale.get()); scale.get());
for (_pipeline_id, (chan, requests)) in request_map.move_iter() { for (_pipeline_id, (chan, requests)) in request_map.move_iter() {
for request in requests.move_iter() { let _ = chan.send_opt(ReRenderMsg(requests));
let _ = chan.send_opt(ReRenderMsg(request));
}
} }
self.recomposite = self.recomposite || recomposite; self.recomposite = self.recomposite || recomposite;
} }

View file

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