Compositing

From OSDev.wiki
Revision as of 01:54, 13 May 2013 by osdev>Klange (Created page with "{{In Progress}} Compositing is a method for providing a windowed GUI in which each application window has its own dedicated buffer - sometimes called a ''surface'' or ''canva...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
This page is a work in progress.
This page may thus be incomplete. Its content may be changed in the near future.

Compositing is a method for providing a windowed GUI in which each application window has its own dedicated buffer - sometimes called a surface or canvas - in which it may draw as it pleases. These buffers are then blitted together by the compositor to produce a final image to display on the screen. The first major system to use a compositing window manager was the Amiga, which used a hardware blitter to composite windows. Notably, OS X was the first of the three mainstream OSes to ship with a compositing window manager, a feature it had since its first release. Other early mainstream compositors include Compiz (the first widely used dedicated X11 compositor) and DWM (the Windows compositor).

Overview

Compositors are so called because they composite windows together to form the image shown on screen. In order to do this, each window needs a dedicated buffer in which to draw. As such, compositors require more memory (either system memory or graphics memory) for each new window that will be displayed. The primary benefit to compositing over traditional window management is comparmentalization. Since each window has its own buffer to draw into, and since the compositor has complete control over the final image, artifacts typical of traditional window rendering such as the "IE 6 effect" are not typically seen in compositing window managers as the window manager does not need to wait for or request that windows repaint areas previously clipped or covered when they are moved. An additional benefit of compositing is that it allows the window manager to perform various transformations or rendering effects when compositing, such as alpha blending, rotation, scaling, duplication, and so on.