aboutsummaryrefslogtreecommitdiffstats
path: root/src/servo/gfx/render_task.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/servo/gfx/render_task.rs')
-rw-r--r--src/servo/gfx/render_task.rs20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/servo/gfx/render_task.rs b/src/servo/gfx/render_task.rs
index 0c7a7022e9c..f1f4e543fd0 100644
--- a/src/servo/gfx/render_task.rs
+++ b/src/servo/gfx/render_task.rs
@@ -1,5 +1,5 @@
use au = gfx::geometry;
-use au::au;
+use au::Au;
use comm::*;
use compositor::{Compositor, LayerBuffer};
use dl = display_list;
@@ -22,15 +22,17 @@ pub enum Msg {
pub type RenderTask = comm::Chan<Msg>;
pub fn RenderTask<C: Compositor Send>(compositor: C) -> RenderTask {
- do task::spawn_listener |po: comm::Port<Msg>| {
+ let compositor_cell = Cell(move compositor);
+ do task::spawn_listener |po: comm::Port<Msg>, move compositor_cell| {
let (layer_buffer_channel, layer_buffer_port) = pipes::stream();
+ let compositor = compositor_cell.take();
compositor.begin_drawing(move layer_buffer_channel);
Renderer {
port: po,
- compositor: compositor,
- mut layer_buffer_port: Cell(layer_buffer_port),
+ compositor: move compositor,
+ mut layer_buffer_port: Cell(move layer_buffer_port),
font_cache: FontCache(),
}.start();
}
@@ -49,7 +51,7 @@ impl<C: Compositor Send> Renderer<C> {
loop {
match self.port.recv() {
- RenderMsg(move render_layer) => self.render(render_layer),
+ RenderMsg(move render_layer) => self.render(move render_layer),
ExitMsg(response_ch) => {
response_ch.send(());
break;
@@ -69,10 +71,10 @@ impl<C: Compositor Send> Renderer<C> {
let layer_buffer = layer_buffer_port.recv();
let (layer_buffer_channel, new_layer_buffer_port) = pipes::stream();
- self.layer_buffer_port.put_back(new_layer_buffer_port);
+ self.layer_buffer_port.put_back(move new_layer_buffer_port);
let render_layer_cell = Cell(move render_layer);
- let layer_buffer_cell = Cell(layer_buffer);
+ let layer_buffer_cell = Cell(move layer_buffer);
let layer_buffer_channel_cell = Cell(move layer_buffer_channel);
#debug("renderer: rendering");
@@ -93,7 +95,7 @@ impl<C: Compositor Send> Renderer<C> {
};
#debug("renderer: returning surface");
- self.compositor.draw(layer_buffer_channel, move layer_buffer);
+ self.compositor.draw(move layer_buffer_channel, move layer_buffer);
}
}
-} \ No newline at end of file
+}