The Compositor class needs an overhaul. Here is a crude overall plan.
##Preliminary cleanup
D21654
D21655
##Structure
* Split up Compositor class into X and Wayland subclasses. D22195
* Introduce `Frame` objects encapsulating single frames, each created at beginning of compositing run and destroyed again on next page-flip.
##Features
* Listen for vblank events via GLX_OML_sync_control and DRM page flips.
* Fall back to timer when not available (When it's not? Framebuffer?).
* Some effects have internal timers and require KWin to not block. Keep that possible. Same holds of course for input on Wayland, but this is already threaded.
* Compositing per `AbstractOutput` (i.e. crtc) if possible on Wayland and X, or if not only on Wayland.
* One thread per output T5710
##Scene integration
We already can paint per screen. Maybe this is already sufficient.
##Platform integration
With `AbstractOutput`.