Lloyd Pique | 818c5d8 | 2015-10-27 14:32:21 -0700 | [diff] [blame] | 1 | What is Wayland? |
| 2 | |
| 3 | Wayland is a project to define a protocol for a compositor to talk to |
| 4 | its clients as well as a library implementation of the protocol. The |
| 5 | compositor can be a standalone display server running on Linux kernel |
| 6 | modesetting and evdev input devices, an X application, or a wayland |
| 7 | client itself. The clients can be traditional applications, X servers |
| 8 | (rootless or fullscreen) or other display servers. |
| 9 | |
| 10 | The wayland protocol is essentially only about input handling and |
| 11 | buffer management. The compositor receives input events and forwards |
| 12 | them to the relevant client. The clients creates buffers and renders |
| 13 | into them and notifies the compositor when it needs to redraw. The |
| 14 | protocol also handles drag and drop, selections, window management and |
| 15 | other interactions that must go through the compositor. However, the |
| 16 | protocol does not handle rendering, which is one of the features that |
| 17 | makes wayland so simple. All clients are expected to handle rendering |
| 18 | themselves, typically through cairo or OpenGL. |
| 19 | |
| 20 | The weston compositor is a reference implementation of a wayland |
| 21 | compositor and the weston repository also includes a few example |
| 22 | clients. |
| 23 | |
| 24 | Building the wayland libraries is fairly simple, aside from libffi, |
| 25 | they don't have many dependencies: |
| 26 | |
| 27 | $ git clone git://anongit.freedesktop.org/wayland/wayland |
| 28 | $ cd wayland |
| 29 | $ ./autogen.sh --prefix=PREFIX |
| 30 | $ make |
| 31 | $ make install |
| 32 | |
| 33 | where PREFIX is where you want to install the libraries. See |
| 34 | http://wayland.freedesktop.org for more complete build instructions |
| 35 | for wayland, weston, xwayland and various toolkits. |