Wayland: implement buffer transforms

Merged Robert Mader requested to merge rmader/mutter:buffer_transforms into master

From the specification:

The purpose of this request is to allow clients to render content according to the output transform, thus permitting the compositor to use certain optimizations even if the display is rotated. Using hardware overlays and scanning out a client buffer for fullscreen surfaces are examples of such optimizations. Those optimizations are highly dependent on the compositor implementation, so the use of this request should be considered on a case-by-case basis.

This implementation adds full support for said transforms but does not provide any performance benefits for applications by itself. Those might arise later when we make use of hardware overlays etc. Its was a by-product of my work on wp_viewporter (!323 (merged))

Recommended test applications: weston-simple-damage and weston-scaler with this patch on top

Required for !323 (merged) previously part of !121 (closed)

Edited by Robert Mader

Merge request reports