Add comments and improve performance of a comparison

This commit is contained in:
Daniel Hedlund 2013-12-15 15:52:52 -08:00
parent a9af374942
commit 1aed7a390e

View file

@ -50,9 +50,11 @@ pub fn run_compositor(compositor: &CompositorTask) {
let mut window_size = Size2D(window_size.width as uint, window_size.height as uint); let mut window_size = Size2D(window_size.width as uint, window_size.height as uint);
let mut done = false; let mut done = false;
let mut recomposite = false; let mut recomposite = false;
let mut composite_ready = false;
let graphics_context = CompositorTask::create_graphics_context(); let graphics_context = CompositorTask::create_graphics_context();
// Tracks whether the renderer is idle and it's now safe to perform a composite
let mut composite_ready = false;
// Keeps track of the current zoom factor // Keeps track of the current zoom factor
let mut world_zoom = 1f32; let mut world_zoom = 1f32;
let mut zoom_action = false; let mut zoom_action = false;
@ -86,10 +88,7 @@ pub fn run_compositor(compositor: &CompositorTask) {
ChangeReadyState(ready_state) => window.set_ready_state(ready_state), ChangeReadyState(ready_state) => window.set_ready_state(ready_state),
ChangeRenderState(render_state) => { ChangeRenderState(render_state) => {
window.set_render_state(render_state); window.set_render_state(render_state);
composite_ready = match render_state { composite_ready = render_state == IdleRenderState;
IdleRenderState => true,
_ => false,
}
} }
SetUnRenderedColor(_id, color) => { SetUnRenderedColor(_id, color) => {
@ -412,6 +411,7 @@ pub fn run_compositor(compositor: &CompositorTask) {
// Check for messages coming from the windowing system. // Check for messages coming from the windowing system.
check_for_window_messages(window.recv()); check_for_window_messages(window.recv());
// If asked to recomposite and renderer is in a safe/idle state
if recomposite && composite_ready { if recomposite && composite_ready {
recomposite = false; recomposite = false;
composite(); composite();