output-mgmt: Add mirror_head request
Closes #101.
This MR is not meant as a replacement for !116 but rather an addition, as that provides a cleaner way to fix #104 as well as more versatile options of mirroring with arbitrary overlaps.
This fixes the need for explicitly naming a source- and target-head when mirroring for some compositors as discussed in !116.
- Using an explicit
mirror_head
request, clients can specify the source/target outputs. - By having an explicit
mirroring
-state, clients can render/display these configurations differently from overlapping viewports. Compositor may also more easily express translations from overlapping viewport configurations into mirroring configs.
How mirroring with different resolutions works is left to the compositor by design. E.g. cosmic-comp would letterbox and scale the source image as necessary (also taking note of the orientation/transform). Compositors might also reject mirroring configurations with different modes/orientations.