[PATCH 03/21] docs: Improve the 'Types of Compositors' section
Jason Ekstrand
jason at jlekstrand.net
Sat Mar 30 13:48:13 PDT 2013
Some of this stuff has been somewhat re-defined lately and may not be
up-to-date. You may want to talk to Kristian or Daniel and see what
the current line-of-thought on types of compositors is. I like the
fact that you expanded on things quite a bit.
--Jason Ekstrand
On Sat, Mar 30, 2013 at 12:11 AM, <matthias.clasen at gmail.com> wrote:
> 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.
Does this really need to be 4 separate paragraphs?
> </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
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
More information about the wayland-devel
mailing list