A practical introduction to the Wayland display protocol, focusing on how the protocol actually works rather than high-level architecture. Covers the client-server model using resources and globals, how clients connect via wl_display and enumerate globals through wl_registry, how to create surfaces using wl_compositor and wl_shell, pixel buffer attachment via EGL or shared memory (wl_shm), and how protocol extensions are defined in XML and generated with wayland-scanner. Also briefly covers the server side including the event loop, global creation, and resource management with DRM, GLES, libinput, and udev.
Sort: