mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-19 22:38:17 +02:00
gl-renderer: iterate paint nodes
Iterate paint nodes instead of the global view list. Right now this does not change behavior. This is a step towards using per-output view lists that can then be optimized for the output in libweston core. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
This commit is contained in:
parent
e02dbf650b
commit
29cdb34019
1 changed files with 15 additions and 10 deletions
|
|
@ -1092,11 +1092,13 @@ static void
|
|||
repaint_views(struct weston_output *output, pixman_region32_t *damage)
|
||||
{
|
||||
struct weston_compositor *compositor = output->compositor;
|
||||
struct weston_view *view;
|
||||
struct weston_paint_node *pnode;
|
||||
|
||||
wl_list_for_each_reverse(view, &compositor->view_list, link)
|
||||
if (view->plane == &compositor->primary_plane)
|
||||
draw_view(view, output, damage);
|
||||
wl_list_for_each_reverse(pnode, &output->paint_node_z_order_list,
|
||||
z_order_link) {
|
||||
if (pnode->view->plane == &compositor->primary_plane)
|
||||
draw_view(pnode->view, output, damage);
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
@ -1110,9 +1112,11 @@ static void
|
|||
update_buffer_release_fences(struct weston_compositor *compositor,
|
||||
struct weston_output *output)
|
||||
{
|
||||
struct weston_view *view;
|
||||
struct weston_paint_node *pnode;
|
||||
|
||||
wl_list_for_each_reverse(view, &compositor->view_list, link) {
|
||||
wl_list_for_each_reverse(pnode, &output->paint_node_z_order_list,
|
||||
z_order_link) {
|
||||
struct weston_view *view = pnode->view;
|
||||
struct gl_surface_state *gs;
|
||||
struct weston_buffer_release *buffer_release;
|
||||
int fence_fd;
|
||||
|
|
@ -1560,17 +1564,18 @@ gl_renderer_repaint_output(struct weston_output *output,
|
|||
/* total area we need to repaint this time */
|
||||
pixman_region32_t total_damage;
|
||||
enum gl_border_status border_status = BORDER_STATUS_CLEAN;
|
||||
struct weston_view *view;
|
||||
struct weston_paint_node *pnode;
|
||||
|
||||
if (use_output(output) < 0)
|
||||
return;
|
||||
|
||||
/* Clear the used_in_output_repaint flag, so that we can properly track
|
||||
* which surfaces were used in this output repaint. */
|
||||
wl_list_for_each_reverse(view, &compositor->view_list, link) {
|
||||
if (view->plane == &compositor->primary_plane) {
|
||||
wl_list_for_each_reverse(pnode, &output->paint_node_z_order_list,
|
||||
z_order_link) {
|
||||
if (pnode->view->plane == &compositor->primary_plane) {
|
||||
struct gl_surface_state *gs =
|
||||
get_surface_state(view->surface);
|
||||
get_surface_state(pnode->view->surface);
|
||||
gs->used_in_output_repaint = false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue