[PATCH 03/21] docs: Improve the 'Types of Compositors' section
matthias.clasen at gmail.com
matthias.clasen at gmail.com
Fri Mar 29 22:11:29 PDT 2013
From: Matthias Clasen <mclasen at redhat.com>
Turn the bullet-point lists into full paragraphs.
---
doc/Wayland/en_US/Compositors.xml | 119 +++++++++++++++-----------------------
1 file changed, 46 insertions(+), 73 deletions(-)
diff --git a/doc/Wayland/en_US/Compositors.xml b/doc/Wayland/en_US/Compositors.xml
index d5311fa..f674776 100644
--- a/doc/Wayland/en_US/Compositors.xml
+++ b/doc/Wayland/en_US/Compositors.xml
@@ -5,57 +5,53 @@
]>
<chapter id="chap-Compositors">
<title>Types of Compositors</title>
+
+ <para>
+ Compositors come in different types, depending on which
+ role they play in the overall architecture of the OS.
+ </para>
+
<section id="sect-Compositors-System-Compositor">
<title>System Compositor</title>
<para>
- <itemizedlist>
- <listitem>
- <para>
- ties in with graphical boot
- </para>
- </listitem>
- <listitem>
- <para>
- hosts different types of session compositors
- </para>
- </listitem>
- <listitem>
- <para>
- lets us switch between multiple sessions (fast user switching,
- secure/personal desktop switching)
- </para>
- </listitem>
- <listitem>
- <para>
- multiseat
- </para>
- </listitem>
- <listitem>
- <para>
- linux implementation using libudev, egl, kms, evdev, cairo
- </para>
- </listitem>
- <listitem>
- <para>
- for fullscreen clients, the system compositor can reprogram the
- video scanout address to source from the client provided buffer.
- </para>
- </listitem>
- </itemizedlist>
+ A system compositor can run from early boot until shutdown.
+ It effectively replaces the kernel vt system, and can tie in
+ with the systems graphical boot setup and multiseat support.
+ </para>
+ <para>
+ A system compositor can host different types of session
+ compositors, and let us switch between multiple sessions
+ (fast user switching, or secure/personal desktop switching).
+ </para>
+ <para>
+ A linux implementation of a system compositor will typically
+ use libudev, egl, kms, evdev and cairo.
+ </para>
+ <para>
+ For fullscreen clients, the system compositor can reprogram the
+ video scanout address to read directly from the client provided
+ buffer.
</para>
</section>
<section id="sect-Compositors-Session-Compositor">
<title>Session Compositor</title>
<para>
+ A session compositor is responsible for a single user session.
+ If a system compositor is present, the session compositor will
+ run nested under the system compositor. Nesting is feasible because
+ the protocol is asynchronous; roundtrips would be too expensive
+ when nesting is involved. If no system compositor is present, a
+ session compositor can run directly on the hw.
+ </para>
+ <para>
+ X applications can continue working under a session compositor
+ by means of a root less X server that is activated on demand.
+ </para>
+ <para>
+ Possible examples for session compositors include
<itemizedlist>
- <listitem>
- <para>
- nested under the system compositor. nesting is feasible because
- protocol is async, roundtrip would break nesting
- </para>
- </listitem>
- <listitem>
- <para>
+ <listitem>
+ <para>
gnome-shell
</para>
</listitem>
@@ -66,17 +62,12 @@
</listitem>
<listitem>
<para>
- compiz?
- </para>
- </listitem>
- <listitem>
- <para>
- kde compositor?
+ kwin
</para>
</listitem>
<listitem>
<para>
- text mode using vte
+ kmscon
</para>
</listitem>
<listitem>
@@ -89,29 +80,17 @@
fullscreen X session under wayland
</para>
</listitem>
- <listitem>
- <para>
- can run without system compositor, on the hw where it makes
- sense
- </para>
- </listitem>
- <listitem>
- <para>
- root window less X server, bridging X windows into a wayland
- session compositor
- </para>
- </listitem>
</itemizedlist>
</para>
</section>
<section id="sect-Compositors-Embedding-Compositor">
<title>Embedding Compositor</title>
<para>
- X11 lets clients embed windows from other clients, or lets client copy
- pixmap contents rendered by another client into their window. This is
- often used for applets in a panel, browser plugins and similar.
+ X11 lets clients embed windows from other clients, or lets clients
+ copy pixmap contents rendered by another client into their window.
+ This is often used for applets in a panel, browser plugins and similar.
Wayland doesn't directly allow this, but clients can communicate GEM
- buffer names out-of-band, for example, using d-bus or as command line
+ buffer names out-of-band, for example, using D-Bus, or command line
arguments when the panel launches the applet. Another option is to
use a nested wayland instance. For this, the wayland server will have
to be a library that the host application links to. The host
@@ -125,14 +104,8 @@
application.
</para>
<para>
- <itemizedlist>
- <listitem>
- <para>
- firefox embedding flash by being a special purpose compositor to
- the plugin
- </para>
- </listitem>
- </itemizedlist>
+ An example for this kind of setup is firefox embedding the flash
+ player as a kind of special-purpose compositor.
</para>
</section>
</chapter>
--
1.8.1.4
More information about the wayland-devel
mailing list