mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Check whether the render task has permission to paint before painting
This matches the behavior of RenderMsg. It doesn't make sense to go to the trouble of rendering if the render task doesn't have permission to paint in the first place.
This commit is contained in:
parent
8d56fa37be
commit
ec8f71d4b5
1 changed files with 8 additions and 7 deletions
|
@ -238,6 +238,13 @@ impl<C:RenderListener + Send> RenderTask<C> {
|
|||
self.render_layers.as_slice());
|
||||
}
|
||||
ReRenderMsg(requests) => {
|
||||
if !self.paint_permission {
|
||||
debug!("render_task: render ready msg");
|
||||
let ConstellationChan(ref mut c) = self.constellation_chan;
|
||||
c.send(RendererReadyMsg(self.id));
|
||||
continue;
|
||||
}
|
||||
|
||||
for ReRenderRequest { buffer_requests, scale, layer_id, epoch }
|
||||
in requests.move_iter() {
|
||||
if self.epoch == epoch {
|
||||
|
@ -428,13 +435,7 @@ impl<C:RenderListener + Send> RenderTask<C> {
|
|||
};
|
||||
|
||||
debug!("render_task: returning surface");
|
||||
if self.paint_permission {
|
||||
self.compositor.paint(self.id, render_layer.id, layer_buffer_set, self.epoch);
|
||||
} else {
|
||||
debug!("render_task: RendererReadyMsg send");
|
||||
let ConstellationChan(ref mut c) = self.constellation_chan;
|
||||
c.send(RendererReadyMsg(self.id));
|
||||
}
|
||||
self.compositor.paint(self.id, render_layer.id, layer_buffer_set, self.epoch);
|
||||
self.compositor.set_render_state(IdleRenderState);
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue