On Wed, 20 Dec 2017 12:26:48 +0000 Daniel Stone <[email protected]> wrote:
> Make it a bit more clear what the purpose of the variable is. > > Signed-off-by: Daniel Stone <[email protected]> > --- > libweston/compositor-drm.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c > index 19aeb5326..3ff06c01c 100644 > --- a/libweston/compositor-drm.c > +++ b/libweston/compositor-drm.c > @@ -3059,7 +3059,7 @@ drm_assign_planes(struct weston_output *output_base, > void *repaint_data) > struct drm_output_state *state; > struct drm_plane_state *plane_state; > struct weston_view *ev; > - pixman_region32_t overlap, surface_overlap; > + pixman_region32_t surface_overlap, renderer_region; > struct weston_plane *primary, *next_plane; > > assert(!output->state_last); > @@ -3080,7 +3080,7 @@ drm_assign_planes(struct weston_output *output_base, > void *repaint_data) > * the client buffer can be used directly for the sprite surface > * as we do for flipping full screen surfaces. > */ > - pixman_region32_init(&overlap); > + pixman_region32_init(&renderer_region); > primary = &output_base->compositor->primary_plane; > > wl_list_for_each(ev, &output_base->compositor->view_list, link) { > @@ -3104,7 +3104,7 @@ drm_assign_planes(struct weston_output *output_base, > void *repaint_data) > es->keep_buffer = false; > > pixman_region32_init(&surface_overlap); > - pixman_region32_intersect(&surface_overlap, &overlap, > + pixman_region32_intersect(&surface_overlap, &renderer_region, > &ev->transform.boundingbox); > > next_plane = NULL; > @@ -3125,7 +3125,8 @@ drm_assign_planes(struct weston_output *output_base, > void *repaint_data) > weston_view_move_to_plane(ev, next_plane); > > if (next_plane == primary) > - pixman_region32_union(&overlap, &overlap, > + pixman_region32_union(&renderer_region, > + &renderer_region, > &ev->transform.boundingbox); > > if (next_plane == primary || > @@ -3142,7 +3143,7 @@ drm_assign_planes(struct weston_output *output_base, > void *repaint_data) > > pixman_region32_fini(&surface_overlap); > } > - pixman_region32_fini(&overlap); > + pixman_region32_fini(&renderer_region); > > /* We rely on output->cursor_view being both an accurate reflection of > * the cursor plane's state, but also being maintained across repaints Hi, let me see... renderer_region starts empty, and accumulates the area from all views assigned to the primary plane for composition. Iterating the view list from top to bottom, if a view may overlap with renderer_region at that point, it cannot be promoted to an overlay plane, because the primary plane already has something on top of it. Reviewed-by: Pekka Paalanen <[email protected]> Thanks, pq
pgpX835aJ7TwD.pgp
Description: OpenPGP digital signature
_______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
