Move RenderState manipulation out of a loop so that we thrash it less

It doesn't really make sense to say that we're idle when we're
potentially still rendering.
This commit is contained in:
Cameron Zwarich 2014-07-30 15:35:28 -07:00
parent ea621676f2
commit 74e9807e7d

View file

@ -246,6 +246,8 @@ impl<C:RenderListener + Send> RenderTask<C> {
continue;
}
self.compositor.set_render_state(RenderingRenderState);
let mut replies = Vec::new();
for ReRenderRequest { buffer_requests, scale, layer_id, epoch }
in requests.move_iter() {
@ -256,6 +258,8 @@ impl<C:RenderListener + Send> RenderTask<C> {
}
}
self.compositor.set_render_state(IdleRenderState);
debug!("render_task: returning surfaces");
self.compositor.paint(self.id, self.epoch, replies);
}
@ -306,8 +310,6 @@ impl<C:RenderListener + Send> RenderTask<C> {
None => return,
};
self.compositor.set_render_state(RenderingRenderState);
// Divide up the layer into tiles.
for tile in tiles.iter() {
// Optimize the display list for this tile.
@ -444,7 +446,6 @@ impl<C:RenderListener + Send> RenderTask<C> {
};
replies.push((render_layer.id, layer_buffer_set));
self.compositor.set_render_state(IdleRenderState);
})
}
}