libweston: per-output z-ordered paint node list

This patch creates a per-output paint node list in the same z-order as
the global view_list in weston_compositor.

The next step is to switch output repaints and backends to use the
z-order list instead of view_list.

Having a per-output paint node list for repaints allows including only
those paint nodes that actually contribute to the output image, so that
completely occluded and out-of-screen views can be ignored in libweston
core already.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
This commit is contained in:
Pekka Paalanen
2021-04-30 17:41:29 +03:00
parent 1a4f87dec5
commit 2fddc539c5
3 changed files with 49 additions and 6 deletions
+6
View File
@@ -291,6 +291,12 @@ struct weston_output {
struct wl_list animation_list;
int32_t x, y, width, height;
/** List of paint nodes in z-order, from top to bottom, maybe pruned
*
* struct weston_paint_node::z_order_link
*/
struct wl_list paint_node_z_order_list;
/** Output area in global coordinates, simple rect */
pixman_region32_t region;