weston/include/libweston
Pekka Paalanen 1a4f87dec5 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
https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/582#note_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>
2021-05-18 14:03:44 +03:00
..
backend-drm.h backend-drm: Fix ignoring config 'require-input' option 2020-12-07 12:49:38 +02:00
backend-fbdev.h Rename public backend headers 2019-04-18 12:31:46 +03:00
backend-headless.h headless, gl-renderer: support pbuffer outputs 2019-10-11 12:16:35 +00:00
backend-rdp.h backend-rdp: allow to force compression off 2019-06-20 16:39:13 +02:00
backend-wayland.h Rename public backend headers 2019-04-18 12:31:46 +03:00
backend-x11.h Rename public backend headers 2019-04-18 12:31:46 +03:00
config-parser.h config-parser: Make get_bool be bool 2019-11-28 19:24:13 +00:00
libweston.h libweston: introduce weston_paint_node 2021-05-18 14:03:44 +03:00
matrix.h Rename matrix.h to libweston/matrix.h 2019-04-18 12:31:46 +03:00
meson.build plug-ins: Migrate pipewire and remoting plug-ins headers to public header 2020-09-04 10:36:48 +00:00
pipewire-plugin.h plug-ins: Migrate pipewire and remoting plug-ins headers to public header 2020-09-04 10:36:48 +00:00
plugin-registry.h Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
remoting-plugin.h plug-ins: Migrate pipewire and remoting plug-ins headers to public header 2020-09-04 10:36:48 +00:00
version.h.in Rename version.h to libweston/version.h 2019-04-18 12:31:46 +03:00
weston-log.h weston-log: merge functions that destroy different types of subscribers 2020-02-10 10:53:50 +00:00
windowed-output-api.h Rename windowed-output-api.h to libweston/windowed-output-api.h 2019-04-18 12:31:46 +03:00
xwayland-api.h Rename xwayland-api.h to libweston/xwayland-api.h 2019-04-18 12:31:46 +03:00
zalloc.h Rename zalloc.h to libweston/zalloc.h 2019-04-18 12:31:46 +03:00