Make RenderListener::paint take multiple replies

This commit is contained in:
Cameron Zwarich 2014-07-10 01:31:48 -07:00
parent a832acc4c8
commit 340d9caba5
3 changed files with 8 additions and 10 deletions

View file

@ -96,10 +96,11 @@ impl RenderListener for CompositorChan {
fn paint(&self,
pipeline_id: PipelineId,
layer_id: LayerId,
layer_buffer_set: Box<LayerBufferSet>,
epoch: Epoch) {
self.chan.send(Paint(pipeline_id, layer_id, layer_buffer_set, epoch))
epoch: Epoch,
replies: Vec<(LayerId, Box<LayerBufferSet>)>) {
for (layer_id, layer_buffer_set) in replies.move_iter() {
self.chan.send(Paint(pipeline_id, layer_id, layer_buffer_set, epoch))
}
}
fn initialize_layers_for_pipeline(&self,

View file

@ -256,9 +256,7 @@ impl<C:RenderListener + Send> RenderTask<C> {
}
debug!("render_task: returning surfaces");
for (layer_id, layer_buffer_set) in replies.move_iter() {
self.compositor.paint(self.id, layer_id, layer_buffer_set, self.epoch);
}
self.compositor.paint(self.id, self.epoch, replies);
}
UnusedBufferMsg(unused_buffers) => {
for buffer in unused_buffers.move_iter().rev() {

View file

@ -102,9 +102,8 @@ pub trait RenderListener {
/// Sends new tiles for the given layer to the compositor.
fn paint(&self,
pipeline_id: PipelineId,
layer_id: LayerId,
layer_buffer_set: Box<LayerBufferSet>,
epoch: Epoch);
epoch: Epoch,
replies: Vec<(LayerId, Box<LayerBufferSet>)>);
fn set_render_state(&self, render_state: RenderState);
}