wayland/src
Julian Orth 6ab970464b protocol: add wl_display_upgrade global
This global allows the IPC library to upgrade the version of the
wl_display global. To ensure maximum flexibility, there are strict
requirements on the connection state at the time of the upgrade. In
particular, after the compositor has destroyed the wl_display_upgrade
object, the wl_display is the only object in the connection.

Since there are many consumers of wl_display and wl_registry, and the
version of these objects is fixed after the upgrade, care must be taken
not to break any of these consumers. Since no consumer checks the
version of these objects and there is no way to get a wl_registry with a
lower version, incrementing the minor version cannot change the
semantics of existing messages and no new events can be added to
wl_registry. As an exception, new events can be added to wl_display
since those events are handled internally by the IPC library which is
also in charge of upgrading the version.

An additional change that could be made in version 2 of wl_display is
adding a wl_display.delete_server_id request, implementing symmetric
delete_id. A global that wants to make full use of destructor events
could then specify that the global must only be exposed on a wl_registry
whose version (and therefore the version of the wl_display) is at least
2.

Signed-off-by: Julian Orth <ju.orth@gmail.com>
2026-03-16 18:34:23 +01:00
..
.gitignore ignore: Add *.dtd.embed 2016-03-10 22:24:20 -08:00
connection.c connection: Add a thread ID to WAYLAND_DEBUG output. 2025-09-15 14:45:53 +01:00
embed.py build: replace assembly embedding with Python script 2021-05-10 22:08:45 +00:00
event-loop.c event-loop: Use timespec utils instead of hand-rolling our own 2025-02-04 14:09:51 +00:00
meson.build build: Bump to meson version 0.64.0 2025-11-27 17:39:11 +02:00
scanner.c scanner: enforce frozen attribute 2026-03-05 12:00:35 +00:00
timespec-util.h timespec: Implement saturating timespec substraction 2025-02-04 14:09:51 +00:00
wayland-client-core.h protocol: add wl_display_upgrade global 2026-03-16 18:34:23 +01:00
wayland-client.c protocol: add wl_display_upgrade global 2026-03-16 18:34:23 +01:00
wayland-client.h doc: Formalize file comment in wayland-client.h, wayland-server.h 2016-05-11 11:03:27 -07:00
wayland-os.c build: fix build and provide compat for OpenBSD 2024-02-21 15:46:41 +00:00
wayland-os.h shm: Add mmap+memmove fallback if mremap() does not exist 2021-09-10 11:35:54 +00:00
wayland-private.h connection: Add a function to parse WAYLAND_DEBUG tokens 2025-09-15 14:45:53 +01:00
wayland-server-core.h protocol: add wl_display_upgrade global 2026-03-16 18:34:23 +01:00
wayland-server-private.h Move wl_priv_signal to wayland-server-private.h 2019-11-06 08:24:14 -06:00
wayland-server.c protocol: add wl_display_upgrade global 2026-03-16 18:34:23 +01:00
wayland-server.h Put WL_DEPRECATED in front of the function declarations 2024-08-09 20:25:11 +00:00
wayland-shm.c shm: linkify function references in docs 2025-05-20 20:14:52 +00:00
wayland-util.c util: assert alloc is consistent with data in wl_array_add() 2026-03-03 11:31:53 +02:00
wayland-util.h connection: Do not busy-loop if a message exceeds the buffer size 2025-06-21 11:29:04 +00:00
wayland-version.h.in src: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-12 15:31:24 -07:00