X Rendering Extension
   HOME

TheInfoList



OR:

The X Rendering Extension (Render or XRender) is an extension to the X11 core protocol to implement image compositing in the
X server X server may refer to: * a display server for the X Window System * X.Org Server, the X.Org Foundation's display server for the X Window System * HPE Integrity Superdome X Server, a line of HPE Integrity Servers HPE Integrity Servers is a ser ...
, to allow an efficient display of transparent images.


History

It was written by
Keith Packard Keith Packard (born April 16, 1963) is a software developer, best known for his work on the X Window System. Packard is responsible for many X extensions and technical papers on X. He has been heavily involved in the development of X since the ...
in 2000 and was first released with
XFree86 XFree86 is an implementation of the X Window System. It was originally written for Unix-like operating systems on IBM PC compatibles and was available for many other operating systems and platforms. It is free software, free and Open-source softw ...
version 4.0.1. Its design was influenced by rio, the windowing system for Plan 9.


Motivation

The core
X Window System The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
drawing protocol does not have a way to efficiently draw transparent objects: A computer display is composed of individual
pixel In digital imaging, a pixel (abbreviated px), pel, or picture element is the smallest addressable element in a Raster graphics, raster image, or the smallest addressable element in a dot matrix display device. In most digital display devices, p ...
s, which can only show a single color at a time. Thus transparency can only be achieved by mixing the colors of the transparent object to be drawn with the background color (
alpha compositing In computer graphics, alpha compositing or alpha blending is the process of combining one image with a background to create the appearance of partial or full transparency. It is often useful to render picture elements (pixels) in separate pass ...
). However, the standard X protocol only allows drawing with solid color, so the only way to achieve transparency is to fetch the background color from the screen, mix it with the object color, then write it back, which is fairly inefficient.Xft - the X Font library
''Drawing anti-aliased text with the core protocol involves fetching pixels from the destination, merging in the glyphs and shipping them back. This can be a performance problem when the latency between client and server is high.'' Since many operations require transparency (for example
spatial anti-aliasing In digital signal processing, spatial anti-aliasing is a technique for minimizing the distortion artifacts (aliasing) when representing a high-resolution image at a lower resolution. Anti-aliasing is used in digital photography, computer graphics ...
, especially during
font rasterization Font rasterization is the process of converting text from a vector description (as found in scalable fonts such as TrueType fonts) to a raster or bitmap description. This often involves some anti-aliasing on screen text to make it smoother a ...
, and transparency effects in
window manager A window manager is system software that controls the placement and appearance of window (computing), windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They ...
s, such as transparent windows or menus), this limitation caused problems, and Xrender was implemented to address it.


Features

It provides several rendering operations and also does
alpha blending In computer graphics, alpha compositing or alpha blending is the process of combining one image with a background to create the appearance of partial or full transparency. It is often useful to render picture elements (pixels) in separate pass ...
. it serves primarily to implement antialiased
font In metal typesetting, a font is a particular size, weight and style of a ''typeface'', defined as the set of fonts that share an overall design. For instance, the typeface Bauer Bodoni (shown in the figure) includes fonts " Roman" (or "regul ...
s, but for example
KWin KWin is a window manager for the X Window System and a Wayland (display server protocol)#Wayland compositors, Wayland compositor. It is released as a part of KDE Plasma, for which it is the default window manager. KWin can also be used on its o ...
, KDE’s window manager uses it to draw
drop shadow In graphic design and computer graphics, a drop shadow is a visual effect consisting of a drawing element which looks like the shadow of an object, giving the impression that the object is raised above the objects behind it. The drop shadow is of ...
s and
translucency In the field of optics, transparency (also called pellucidity or diaphaneity) is the physical property of allowing light to pass through the material without appreciable scattering of light. On a macroscopic scale (one in which the dimensions a ...
in case
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
is not available. Geometric figures are rendered by client-side tessellation into either
triangle A triangle is a polygon with three corners and three sides, one of the basic shapes in geometry. The corners, also called ''vertices'', are zero-dimensional points while the sides connecting them, also called ''edges'', are one-dimension ...
s or
trapezoid In geometry, a trapezoid () in North American English, or trapezium () in British English, is a quadrilateral that has at least one pair of parallel sides. The parallel sides are called the ''bases'' of the trapezoid. The other two sides are ...
s. Text is drawn by loading the
glyph A glyph ( ) is any kind of purposeful mark. In typography, a glyph is "the specific shape, design, or representation of a character". It is a particular graphical representation, in a particular typeface, of an element of written language. A ...
s into the server and rendering as a group. It is designed to target the 3D graphics capabilities of newer video cards.


References


External links


The X Rendering Extension
(Keith Packard, Latest Official Specification)
The Xrender Library
(Keith Packard,
USENIX USENIX is an American 501(c)(3) nonprofit membership organization based in Berkeley, California and founded in 1975 that supports advanced computing systems, operating system (OS), and computer networking research. It organizes several confe ...
2000)
High Performance X Servers in the Kdrive Architecture
(Emma Anholt,
USENIX USENIX is an American 501(c)(3) nonprofit membership organization based in Berkeley, California and founded in 1975 that supports advanced computing systems, operating system (OS), and computer networking research. It organizes several confe ...
'04)
X.Org Glossary
( X.Org) {{XWinSys Freedesktop.org X Window extensions