README: add two diagrams to outline the stack

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2015-05-28 09:33:07 +10:00
parent fbead87edb
commit 9883735c1c
4 changed files with 59 additions and 0 deletions

View file

@ -16,6 +16,27 @@ libinput originates from
[weston](http://cgit.freedesktop.org/wayland/weston/), the Wayland reference
compositor.
Architecture
------------
libinput is not used directly by applications, rather it is used by the
xf86-input-libinput X.Org driver or wayland compositors. The typical
software stack for a system running Wayland is:
@dotfile libinput-stack-wayland.gv
Where the Wayland compositor may be Weston, mutter, KWin, etc. Note that
Wayland encourages the use of toolkits, so the Wayland client (your
application) does not usually talk directly to the compositor but rather
employs a toolkit (e.g. GTK) to do so.
The simplified software stack for a system running X.Org is:
@dotfile libinput-stack-xorg.gv
Again, on a modern system the application does not usually talk directly to
the X server using Xlib but rather employs a toolkit to do so.
Source code
-----------

View file

@ -24,6 +24,8 @@ header_files = \
diagram_files = \
$(srcdir)/dot/seats-sketch.gv \
$(srcdir)/dot/seats-sketch-libinput.gv \
$(srcdir)/dot/libinput-stack-wayland.gv \
$(srcdir)/dot/libinput-stack-xorg.gv \
$(srcdir)/svg/software-buttons.svg \
$(srcdir)/svg/clickfinger.svg \
$(srcdir)/svg/button-scrolling.svg \

View file

@ -0,0 +1,17 @@
digraph stack
{
rankdir="LR";
node [
shape="box";
]
kernel [label="Kernel"];
libinput;
compositor [label="Wayland Compositor"];
client [label="Wayland Client"];
kernel -> libinput
libinput -> compositor
compositor -> client
}

View file

@ -0,0 +1,19 @@
digraph stack
{
rankdir="LR";
node [
shape="box";
]
kernel [label="Kernel"];
libinput;
xf86libinput [label="xf86-input-libinput"];
xserver [label="X Server"];
client [label="X11 client"];
kernel -> libinput
libinput -> xf86libinput
xf86libinput -> xserver
xserver -> client
}