diff --git a/src/compositor.c b/src/compositor.c index c2c975d5..c40f3eb3 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -943,6 +943,22 @@ weston_view_move_to_plane(struct weston_view *view, weston_surface_damage(view->surface); } +/** Inflict damage on the plane where the view is visible. + * + * \param view The view that causes the damage. + * + * If the view is currently on a plane (including the primary plane), + * take the view's boundingbox, subtract all the opaque views that cover it, + * and add the remaining region as damage to the plane. This corresponds + * to the damage inflicted to the plane if this view disappeared. + * + * A repaint is scheduled for this view. + * + * The region of all opaque views covering this view is stored in + * weston_view::clip and updated by view_accumulate_damage() during + * weston_output_repaint(). Specifically, that region matches the + * scenegraph as it was last painted. + */ WL_EXPORT void weston_view_damage_below(struct weston_view *view) { diff --git a/src/compositor.h b/src/compositor.h index 5c0ea74b..47b60368 100644 --- a/src/compositor.h +++ b/src/compositor.h @@ -761,7 +761,7 @@ struct weston_view { struct weston_plane *plane; struct weston_view *parent_view; - pixman_region32_t clip; + pixman_region32_t clip; /* See weston_view_damage_below() */ float alpha; /* part of geometry, see below */ void *renderer_state;