aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/gfx/render_task.rs
diff options
context:
space:
mode:
authorCameron Zwarich <zwarich@mozilla.com>2014-07-30 15:35:28 -0700
committerCameron Zwarich <zwarich@mozilla.com>2014-07-30 15:38:34 -0700
commit74e9807e7d410990a58859b6a05178da59ea2f47 (patch)
treecbf676200c07710fd93beafac3b0e3990fa89945 /src/components/gfx/render_task.rs
parentea621676f2b2bb1186b46aa0653e6a393269311b (diff)
downloadservo-74e9807e7d410990a58859b6a05178da59ea2f47.tar.gz
servo-74e9807e7d410990a58859b6a05178da59ea2f47.zip
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.
Diffstat (limited to 'src/components/gfx/render_task.rs')
-rw-r--r--src/components/gfx/render_task.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/components/gfx/render_task.rs b/src/components/gfx/render_task.rs
index e81f36162c0..d286bafe5ec 100644
--- a/src/components/gfx/render_task.rs
+++ b/src/components/gfx/render_task.rs
@@ -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);
})
}
}