README: add two diagrams to outline the stack
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 27 May 2015 23:33:07 +0000 (09:33 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Mon, 1 Jun 2015 05:43:36 +0000 (15:43 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
README.txt
doc/Makefile.am
doc/dot/libinput-stack-wayland.gv [new file with mode: 0644]
doc/dot/libinput-stack-xorg.gv [new file with mode: 0644]

index 3c7a5d5..07e8fa3 100644 (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
 -----------
 
index ed2f72f..181fe2e 100644 (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 \
diff --git a/doc/dot/libinput-stack-wayland.gv b/doc/dot/libinput-stack-wayland.gv
new file mode 100644 (file)
index 0000000..20b334e
--- /dev/null
@@ -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
+}
diff --git a/doc/dot/libinput-stack-xorg.gv b/doc/dot/libinput-stack-xorg.gv
new file mode 100644 (file)
index 0000000..e50f241
--- /dev/null
@@ -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
+}