Heterogeneous outputs
Implement the prerequisites for supporting heterogeneous heads and outputs that are described in #268 (comment 605126).
The weston_output::destroy
callback and the new weston_head::backend_id
opaque pointer are used to let backends identify their outputs and heads, respectively.
To avoid breaking the remoting and pipewire plugins, they had to be stopped from overwriting the weston_output::destroy
pointer.
Note that this still doesn't allow the code in compositor/main.c
to identify which backend a head belongs to, to choose the correct output configuration code. That is why !578 (merged) will add a weston_head::backend
pointer.