swc

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

commit 558f094efbdba383f357773f48df421b91d3eb66
parent f790c5a96a005656c10d4816184ca31cc29e4b89
Author: Michael Forney <mforney@mforney.org>
Date:   Mon, 20 Jan 2014 20:12:39 -0800

compositor: Rework schedule_updates

Diffstat:
Mlibswc/compositor.c | 34+++++++++-------------------------
Mlibswc/compositor.h | 3---
2 files changed, 9 insertions(+), 28 deletions(-)

diff --git a/libswc/compositor.c b/libswc/compositor.c @@ -385,19 +385,22 @@ static void update_extents(struct view * view) view->border.damaged = true; } +static void schedule_updates(struct swc_compositor * compositor, uint32_t screens) +{ + if (compositor->scheduled_updates == 0) + wl_event_loop_add_idle(swc.event_loop, &perform_update, NULL); + + compositor->scheduled_updates |= screens; +} + static bool update(struct swc_view * base) { struct view * view = (void *) base; - struct swc_screen_internal * screen; if (!view->base.visible) return false; - wl_list_for_each(screen, &swc.screens, link) - { - if (view->base.screens & swc_screen_mask(screen)) - swc_compositor_schedule_update(view->compositor, screen); - } + schedule_updates(view->compositor, view->base.screens); return true; } @@ -855,22 +858,3 @@ void swc_compositor_finish(struct swc_compositor * compositor) { } -void swc_compositor_schedule_update(struct swc_compositor * compositor, - struct swc_screen_internal * screen) -{ - bool update_scheduled = compositor->scheduled_updates != 0; - - if (compositor->scheduled_updates & swc_screen_mask(screen)) - return; - - compositor->scheduled_updates |= swc_screen_mask(screen); - - if (!update_scheduled) - { - struct wl_event_loop * event_loop; - - event_loop = wl_display_get_event_loop(compositor->display); - wl_event_loop_add_idle(event_loop, &perform_update, compositor); - } -} - diff --git a/libswc/compositor.h b/libswc/compositor.h @@ -36,9 +36,6 @@ bool swc_compositor_initialize(struct swc_compositor * compositor, void swc_compositor_finish(struct swc_compositor * compositor); -void swc_compositor_schedule_update(struct swc_compositor * compositor, - struct swc_screen_internal * screen); - bool swc_compositor_add_surface(struct swc_compositor * compositor, struct swc_surface * surface); bool swc_compositor_remove_surface(struct swc_compositor * compositor,