compositor: Move repaint loop into a backend function
We've trimmed down the actual repaint loop to just iterating through the
surface list and calling weston_surface_draw(), so we push that to the
backend without too much code duplication.
diff --git a/src/compositor-x11.c b/src/compositor-x11.c
index 09213f7..771bf69 100644
--- a/src/compositor-x11.c
+++ b/src/compositor-x11.c
@@ -200,6 +200,16 @@
return 0;
}
+static void
+x11_output_repaint(struct weston_output *output)
+{
+ struct weston_compositor *compositor = output->compositor;
+ struct weston_surface *surface;
+
+ wl_list_for_each_reverse(surface, &compositor->surface_list, link)
+ weston_surface_draw(surface, output);
+}
+
static int
finish_frame_handler(void *data)
{
@@ -462,6 +472,7 @@
wl_event_loop_add_timer(loop, finish_frame_handler, output);
output->base.prepare_render = x11_output_prepare_render;
+ output->base.repaint = x11_output_repaint;
output->base.present = x11_output_present;
output->base.prepare_scanout_surface =
x11_output_prepare_scanout_surface;