swc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/swc
Log | Files | Refs | README | LICENSE

commit 3461ee5af17f86761c2c2f5255c15157c864d261
parent 87e5e78e2a7149a13c9d519688d8d874483215d5
Author: Michael Forney <mforney@mforney.org>
Date:   Fri,  6 Dec 2013 20:42:27 -0800

Style

Diffstat:
Mlibswc/compositor.c | 48++++++++++++++++++++++++------------------------
1 file changed, 24 insertions(+), 24 deletions(-)

diff --git a/libswc/compositor.c b/libswc/compositor.c @@ -132,38 +132,38 @@ static void perform_update(void * data) { struct swc_compositor * compositor = data; struct swc_output * output; + pixman_region32_t damage; uint32_t updates = compositor->scheduled_updates - & ~compositor->pending_flips; + & ~compositor->pending_flips; - if (updates) - { - pixman_region32_t damage; + if (!updates) + return; - printf("performing update\n"); - calculate_damage(compositor); - pixman_region32_init(&damage); + DEBUG("Performing update\n"); - wl_list_for_each(output, &compositor->outputs, link) - { - if (compositor->scheduled_updates & SWC_OUTPUT_MASK(output)) - { - update_output_damage(output, &compositor->damage); + calculate_damage(compositor); + pixman_region32_init(&damage); - if (!(compositor->pending_flips & SWC_OUTPUT_MASK(output))) - { - flush_output_damage(output, &damage); - repaint_output(compositor, output, &damage); - } - } - } + wl_list_for_each(output, &compositor->outputs, link) + { + if (!(compositor->scheduled_updates & SWC_OUTPUT_MASK(output))) + continue; + + update_output_damage(output, &compositor->damage); + + /* Don't repaint the output if it is waiting for a page flip. */ + if (compositor->pending_flips & SWC_OUTPUT_MASK(output)) + continue; - pixman_region32_fini(&damage); - /* XXX: Should assert that all damage was covered by some output */ - pixman_region32_clear(&compositor->damage); - compositor->pending_flips |= updates; - compositor->scheduled_updates &= ~updates; + flush_output_damage(output, &damage); + repaint_output(compositor, output, &damage); } + pixman_region32_fini(&damage); + /* XXX: Should assert that all damage was covered by some output */ + pixman_region32_clear(&compositor->damage); + compositor->pending_flips |= updates; + compositor->scheduled_updates &= ~updates; } static void handle_focus(struct swc_pointer * pointer)