From 3ec2ebc7e274ed1ff647c7b6026c59e5b7196666 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Tue, 27 Jun 2023 16:59:43 -0500 Subject: [PATCH] libweston: Build view list for all outputs at once Instead of passing an output to weston_compositor_build_view_list(), have it set up all the output z_order_lists at once. This is a preamble for MR !1285 which wants to maintain a compositor wide dirty bit for the view list. Signed-off-by: Derek Foreman --- libweston/compositor.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/libweston/compositor.c b/libweston/compositor.c index bbba53abf..428dee76d 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -100,8 +100,7 @@ weston_output_transform_scale_init(struct weston_output *output, uint32_t transform, uint32_t scale); static void -weston_compositor_build_view_list(struct weston_compositor *compositor, - struct weston_output *output); +weston_compositor_build_view_list(struct weston_compositor *compositor); static char * weston_output_create_heads_string(struct weston_output *output); @@ -2159,8 +2158,7 @@ weston_view_destroy(struct weston_view *view) if (weston_view_is_mapped(view)) { weston_view_unmap(view); - weston_compositor_build_view_list(view->surface->compositor, - NULL); + weston_compositor_build_view_list(view->surface->compositor); } wl_list_for_each_safe(pnode, pntmp, &view->paint_node_list, view_link) @@ -3052,9 +3050,9 @@ weston_output_build_z_order_list(struct weston_compositor *compositor, } static void -weston_compositor_build_view_list(struct weston_compositor *compositor, - struct weston_output *output) +weston_compositor_build_view_list(struct weston_compositor *compositor) { + struct weston_output *output; struct weston_view *view, *tmp; struct weston_layer *layer; @@ -3076,9 +3074,8 @@ weston_compositor_build_view_list(struct weston_compositor *compositor, wl_list_for_each(view, &layer->view_list.link, layer_link.link) surface_free_unused_subsurface_views(view->surface); - if (output) + wl_list_for_each(output, &compositor->output_list, link) weston_output_build_z_order_list(compositor, output); - } static void @@ -3125,7 +3122,7 @@ weston_output_repaint(struct weston_output *output) TL_POINT(ec, "core_repaint_begin", TLP_OUTPUT(output), TLP_END); /* Rebuild the surface list and update surface transforms up front. */ - weston_compositor_build_view_list(ec, output); + weston_compositor_build_view_list(ec); /* Find the highest protection desired for an output */ wl_list_for_each(pnode, &output->paint_node_z_order_list,