weston/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 drm/state-propose: Remove unnecessary check 2021-05-15 15:24:12 +00:00
backend-fbdev pixman-renderer: Replace output-create flags with struct 2020-03-20 15:25:24 +00:00
backend-headless Add weston-drm-fourcc.h 2021-02-25 14:35:03 +02:00
backend-rdp backend-rdp: release seat on peer disconnect 2020-10-16 12:11:27 +00:00
backend-wayland wayland-backend: forward seats with the correct name 2021-05-15 15:57:18 +00:00
backend-x11 Add weston-drm-fourcc.h 2021-02-25 14:35:03 +02:00
renderer-gl libweston/renderer-gl/gl-renderer.c: use glDeleteTextures() and update gs->num_textures if num_textures is decrased 2021-05-15 16:03:42 +00:00
animation.c libweston: add missing include 2020-01-29 09:49:41 +00:00
backend.h pixman-renderer: share region_global_to_output() 2021-02-25 13:16:02 +02:00
bindings.c libweston: add missing include 2020-01-29 09:49:41 +00:00
clipboard.c libweston: add missing include 2020-01-29 09:49:41 +00:00
compositor.c libweston: introduce weston_paint_node 2021-05-18 14:03:44 +03:00
content-protection.c compositor: Prevent an invalid access against content protection 2021-05-12 17:51:49 +03:00
data-device.c data-device: cleanup after touch drag 2021-05-15 15:54:03 +00:00
dbus.c dbus: Don't return value from void function 2019-06-11 11:31:04 +01:00
dbus.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
drm-formats.c libweston: add struct weston_drm_format 2021-04-27 19:56:38 +00:00
git-version.h.meson Add Meson build system 2018-12-09 14:50:54 +02:00
input.c libweston: Send wl_keyboard.modifiers after wl_keyboard.enter 2020-07-09 17:47:11 +03:00
launcher-direct.c launcher-direct: handle seat0 without VTs 2021-01-21 09:02:26 +00:00
launcher-impl.h libweston/launcher: libseat backend 2021-04-14 09:22:17 +00:00
launcher-libseat.c libweston/launcher: libseat backend 2021-04-14 09:22:17 +00:00
launcher-logind.c libweston/launcher: Allow VT switch without get_vt 2021-04-14 09:22:17 +00:00
launcher-util.c libweston/launcher: Allow VT switch without get_vt 2021-04-14 09:22:17 +00:00
launcher-util.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
launcher-weston-launch.c launcher: remove unused field 2021-04-12 08:03:42 -06:00
libinput-device.c libweston/libinput-device: Enable/Set pointer capabilities only on pointer movement 2020-12-08 17:54:55 +02:00
libinput-device.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libinput-seat.c libweston: Remove internal weston-log set-up function out of public header 2019-07-18 13:34:04 +03:00
libinput-seat.h Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
libweston-internal.h libweston: introduce weston_paint_node 2021-05-18 14:03:44 +03:00
linux-dmabuf.c gl-renderer: do not expose query_dmabuf_formats and query_dmabuf_modifiers 2021-04-27 19:56:38 +00:00
linux-dmabuf.h drop MOD_INVALID, MOD_LINEAR definitions 2021-02-25 14:35:03 +02:00
linux-explicit-synchronization.c libweston: Advertise minor version 2 of zwp_linux_explicit_synchronization_v1 2019-08-02 15:00:08 +00:00
linux-explicit-synchronization.h libweston: Support zwp_surface_synchronization_v1.set_acquire_fence 2019-02-06 12:21:56 +00:00
linux-sync-file-uapi.h libweston: Introduce an internal linux sync file API 2019-02-06 12:21:56 +00:00
linux-sync-file.c libweston: export weston_linux_sync_file_read_timestamp() 2019-04-18 12:50:55 +03:00
linux-sync-file.h libweston: export weston_linux_sync_file_read_timestamp() 2019-04-18 12:50:55 +03:00
log.c libweston: add missing include 2020-01-29 09:49:41 +00:00
meson.build libweston: add struct weston_drm_format 2021-04-27 19:56:38 +00:00
noop-renderer.c libweston: add missing include 2020-01-29 09:49:41 +00:00
pixel-formats.c libweston: fix #ifdef ENABLE_EGL 2021-03-12 16:14:28 +02:00
pixel-formats.h pixel-formats: add RGBA bits and type fields 2019-10-04 12:17:18 +03:00
pixman-renderer.c pixman-renderer: share region_global_to_output() 2021-02-25 13:16:02 +02:00
pixman-renderer.h pixman-renderer: Replace output-create flags with struct 2020-03-20 15:25:24 +00:00
plugin-registry.c Rename plugin-registry.h to libweston/plugin-registry.h 2019-04-18 12:31:46 +03:00
screenshooter.c libweston: do not damage on screenshot 2021-02-25 12:47:07 +02:00
spring-tool.c Rename compositor.h to libweston/libweston.h 2019-04-18 12:31:46 +03:00
timeline.c libweston: fix typos 2021-02-24 10:01:17 -05:00
timeline.h libweston: move TYPEVERIFY macro into shared 2021-02-17 12:52:33 +00:00
touch-calibration.c libweston: don't clean up surface role 2020-06-12 09:23:11 +00:00
vertex-clipping.c Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
vertex-clipping.h Rename src/ to libweston/ 2016-06-23 17:44:54 +03:00
weston-direct-display.c libweston: Add weston-direct-display server side implementation 2019-11-18 19:33:09 +02:00
weston-launch.c launcher: fix socket message race condition 2021-04-10 22:29:30 +00:00
weston-launch.h launcher: remove unused enum value 2021-05-15 15:40:24 +00:00
weston-log-file.c weston-log: destroy subscriptions with destruction of subscribers 2020-02-10 10:53:50 +00:00
weston-log-flight-rec.c weston-log: destroy subscriptions with destruction of subscribers 2020-02-10 10:53:50 +00:00
weston-log-internal.h weston-log-wayland: make stream_destroy() use weston_log_subscriber_release() 2020-02-10 10:53:50 +00:00
weston-log-wayland.c weston-log-wayland: make stream_destroy() use weston_log_subscriber_release() 2020-02-10 10:53:50 +00:00
weston-log.c libweston: fix typos 2021-02-24 10:01:17 -05:00
zoom.c libweston: Add functions to modify disable_planes counter for an output 2019-08-26 16:18:22 +05:30