libweston: introduce weston_paint_node
This new object is created for every surface-view-output triplet. As there is always exactly one surface for a view and it does not change during a view's lifetime, this is really for a view-output pair or a surface-output pair. The object is created on-demand as a part of preparing for an output repaint, so it applies only to surfaces that are going through repaint. A prerequisite for that is that the surface is mapped, which means it has a mapped view. When any one of surface or view gets destroyed or output gets disabled, all related paint nodes are destroyed. In future, paint node will be useful for caching surface-output or view-output pair dependent data: - damage regions for overlapping outputs - color transformations - backend-specific bookkeeping (e.g. DRM KMS plane assigments) - per-output repaint lists - surface geometry transformed into output space Suggested by Daniel Stone in !582 (comment 899406) PS. The call in weston_view_destroy() to weston_compositor_build_view_list() might be so that if the view has sub-surfaces, rebuilding the view list removes those those too and automagically deletes their views. Signed-off-by:Pekka Paalanen <pekka.paalanen@collabora.com>
parent
7ee4149c
No related branches found
No related tags found
Loading
-
mentioned in merge request !674 (merged)
-
mentioned in commit Wladmis/weston@2ec15ebf
Please register or sign in to comment