Rendering

Overview
The Fedora Rendering Project's goal is to create a compelling end-user experience for the Free Software desktop. The desktop should be attractive, it should use sophisticated visual effects where appropriate, it should perform well, with near-instantaenous response and smooth transitions, and it should provide a rich range of visual metaphors for use in applications.

To create this user experience, we are enhancing and building on top of a number of technologies. Cairo provides a 2D drawing API. Pango text layout capabilities. OpenGL is used for 3D graphics. The COMPOSITE extension to X allows us to combine toplevel windows into a desktop in sophisticated ways.

The Pieces
Cairo:: Cairo is an easy-to-use 2D graphics library with a drawing model similar to PDF or SVG.

Composite:: The X Composite Extension is an extension to X that allows a special client, called a "compositing manager" to replace the standard way that the X server combines windows together. Generally, we expect that the same client will handle the compositing manager role, and the classic X role of "window manager".

GTK+:: GTK+ is the user interface toolkit used in the GNOME desktop. While any X toolkit can be used with the other pieces of the rendering project, work we are doing that requires toolkit integration will concentrate on GTK+.

Luminocity:: Luminocity  is a test compositing manager and window manager written using OpenGL. Rather than displaying on the X server that it is managing, it opens an OpenGL window on a separate server.

Metacity:: Metacity is the standard GNOME window manager. The  CVS branch of Metacity contains a rewrite of the Metacity compositing manager. It's expected that eventually the OpenGL work being done in Luminocity will get replaced by making the Metacity compositing manager draw through OpenGL.

OpenGL:: OpenGL is an industry-standard 3D API. Mesa is an open-source implementation of the OpenGL API which is used as the basis for most 3D support on Linux. By writing to OpenGL, we can take direct advantage of advanced features in recent graphics hardware. These features are particularly useful in the compositing manager, but it's possible that OpenGL is also an appropriate hardware abstraction layer for X server acceleration.

Pango:: Pango is a text-layout library supporting most of the world's scripts.

Documents

 * Architectures for a Compositing Manager A "decision tree" of possible architectures for a compositing manager


 * DemoPlans Some initial plans for a demo at the February 2005 X developer's meeting