Move more output layer stuff to higher levels
Commit 1: split Compositor::composite
into X11 and Wayland implementations. Sharing it doesn't really make sense, since they're so different
Commit 2: put damage into OutputFrame
. This removes the m_lastDamage
things from the output layers, makes it no longer be dependent on a single primary layer covering the whole screen and makes damage tracking actually work with direct scanout
Commit 3: move a few more things up a level, namely the buffer source rect, buffer and hardware transforms, and the centering of the primary plane with direct scanout. This is a small)step towards finally using overlay planes, as the Compositor
can use this to specify the coordinates for each output layer.
With this, doAttemptScanout
only has the GraphicsBuffer
and ColorDescription
left over. I still want to move the ColorDescription
out of the method, but as it's decided by the output layer when compositing and changing that is a bit more involved, it'll have to be done later