xbmc/xbmc — pull request #2989 by smspillaz (2013-07-20 00:00:17+00:00)
Title: Implement support for display on Wayland compositors

Implemented initial support for display and input on wayland compositors. The following items should work fine:
* Display, frame refresh
* Detecting and selecting different output modes
* Mouse input (buttons, wheels, motion, cursor hiding)
* Keyboard input (key repeat)

The following items are not implemented yet
* Dirty regions (requires core work to support EGL_EXT_buffer_age)
* Comprehensive test framework (would rather do some more refactoring on the windowing system backend before implementing that)

As was suggested in the previous review, libwayland-client.so, libwayland-egl.so and libxkbcommon.so are now loaded as dynamic libraries so that there is no runtime dependency if we want to build in wayland support. Unfortunately, that comes at a cost - we are no longer able to use a lot of the autogenerated protocol boilerplate and must instead use the protocol directly.

As such, any changes to this branch which are strictly protocol related should really be encapsulated in the objects found in the xbmc::wayland namespace.

Screenshot:
![wayland-on-weston-on-x](https://f.cloud.github.com/assets/775309/803048/3e5c5240-ede2-11e2-9fb4-f81573a01bfd.png)