Skip to content

Commit

Permalink
Don't perform composite unless renderer has indicated it's idle
Browse files Browse the repository at this point in the history
The rendergl::render_scene() function is being called more often than
it needs to be, sometimes before the renderer has finished.  This
could result in PNG images that are drawn before the frame trees set
in SetIds is rendered.
  • Loading branch information
dhedlund committed Dec 15, 2013
1 parent 4440476 commit a9af374
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/components/main/compositing/run.rs
Expand Up @@ -23,6 +23,7 @@ use layers::rendergl;
use layers::scene::Scene;
use opengles::gl2;
use png;
use servo_msg::compositor_msg::IdleRenderState;
use servo_msg::constellation_msg::{ConstellationChan, NavigateMsg, ResizedWindowMsg, LoadUrlMsg};
use servo_msg::constellation_msg;
use servo_util::time::profile;
Expand All @@ -49,6 +50,7 @@ pub fn run_compositor(compositor: &CompositorTask) {
let mut window_size = Size2D(window_size.width as uint, window_size.height as uint);
let mut done = false;
let mut recomposite = false;
let mut composite_ready = false;
let graphics_context = CompositorTask::create_graphics_context();

// Keeps track of the current zoom factor
Expand Down Expand Up @@ -82,7 +84,13 @@ pub fn run_compositor(compositor: &CompositorTask) {
Exit => done = true,

ChangeReadyState(ready_state) => window.set_ready_state(ready_state),
ChangeRenderState(render_state) => window.set_render_state(render_state),
ChangeRenderState(render_state) => {
window.set_render_state(render_state);
composite_ready = match render_state {
IdleRenderState => true,
_ => false,
}
}

SetUnRenderedColor(_id, color) => {
match compositor_layer {
Expand Down Expand Up @@ -404,7 +412,7 @@ pub fn run_compositor(compositor: &CompositorTask) {
// Check for messages coming from the windowing system.
check_for_window_messages(window.recv());

if recomposite {
if recomposite && composite_ready {
recomposite = false;
composite();
}
Expand Down

0 comments on commit a9af374

Please sign in to comment.