Introduce wlr_output_layer
This series add a new wlr_output_layer
API, an implementation of this API in the Wayland backend and an example compositor.
My plan is to make glider switch to this API to demonstrate how it can be implemented under DRM.
Introduce wlr_output_layer
This new API allows compositors to display buffers without needing to perform rendering operations. This API can be implemented on Wayland using subsurfaces and on DRM using KMS planes.
The goal is to make use of this API in a future scene-graph API.
backend/wayland: implement the output layer API
The output layer API is implemented using subsurfaces. I chose to implement this API in the Wayland backend before doing so in the DRM backend, because it's way easier on Wayland. On DRM, one needs to figure out how buffers can be mapped to KMS planes (libliftoff can help) and perform atomic test-only commits (our current DRM backend isn't ready for this).
examples: add output-layers example
This new example demonstrates how to use the wlr_output_layer API. It's a compositor that displays all client surfaces using wlr_output_layer. To test, one can for instance run:
build/examples/output-layers -s 'weston-simple-dmabuf-egl & weston-simple-egl'
Under the Wayland backend (where layers work as long as clients use DMA-BUFs), thsi should display two surfaces.