Compositing window manager
From Wikipedia, the free encyclopedia
A compositing window manager is a component of a computer's graphical user interface that draws windows and/or their borders. It also controls how they are displayed and interact with each other, and the rest of the desktop environment. The main difference between compositing window manager and a standard window manager is that instead of outputting to a common screen, programs each output first to a separate and independent buffer, or temporary location inside the computer, where they can be manipulated before they are shown. [1] [2]
The output from these separate buffers is then processed and combined by the window manager, or composited onto a common desktop. The result is that the programs now behave as independent 2D or 3D objects. [3] Compositing allows for advanced visual effects, such as transparency, fading, scaling, duplicating, bending and contorting, shuffling, and redirecting applications. The addition of a virtual third dimension allows for features such as realistic shadows beneath windows, the appearance of distance and depth, live thumbnail versions of windows, and complex animations, to name just a few. [4] [5]
Contents |
[edit] History of Compositing Window Managers
On March 24, 2001, Mac OS X v10.0 was the first mainstream operating system to ship with working compositing and effects, provided by its Quartz component. However compositing was not accelerated using hardware. On August 13, 2002 with the release of Mac OS X v10.2 and Quartz Extreme, the job of compositing could be moved to the video card (for certain types of card), where it took advantage of the hardware's drawing capabilities. [6] [7]
Compositing under the X Window System required some redesign, which took place gradually, and slowly opened up many new possibilities. [8] Metacity 2.8.4 was one of the first X Window System compositing window managers, which is now included with GNOME, and was released in August of 2004. [9] (Although unconfirmed reports say that the functionality had been in CVS and contained in the unstable release 2.7.0 in November 2003, as well as the stable release 2.8.0 in February 2004.)[citation needed]
However the first widely-publicized compositing window manager for X was Xfwm, which is part of the Xfce desktop environment, and was released in January 2005.[citation needed] KDE's KWin now also supports 2D compositing. [10] On January 26, 2005, Compiz was released on Linux and added fully accelerated 3D compositing to the Linux platform. [11]
The first confirmed appearance of a compositing window manager on the Microsoft Windows platform was with the release of Windows Vista, which included Desktop Window Manager. [12]
[edit] Basic 2D Compositing
Windows are naturally 2D planar objects, and as such, window managers work mainly in 2D. This presents issues when extending the manager into three dimensions, or when attempting to create 3D-style visual effects.
In Metacity, for example, windows are drawn separately, and then added to the desktop, so even hidden parts of windows have been actively rendered. While still possessing many of the properties of their 3D counterparts, the output from 2D compositing window managers has no depth, meaning that windows still exist in a plane, and shadows, if supported, will be less realistic.
Also, 2D compositing doesn't usually use hardware acceleration, as is the case with Metacity. This means that things like transparency may cause significant slowdown if used extensively.
While not noticeably different to the naked eye, 2D compositing creates a more realistic model of the windowing system than traditional stacking window managers, which allows for features like window translucency and eliminates the need for chroma keying or green screening in the X video extension.
[edit] 3D Compositing Window Managers
Recently several 3D accelerated compositing window managers have become mainstream, including Compiz, Compiz Fusion, and Desktop Window Manager. Mac OS X has been using compositing windowing functions since Mac OS X 10.0 which shipped with the Quartz Compositor.
OpenGL or DirectX may be used in some compositing window managers to offload the rendering work to the video card. The first published implementation using this technique under Mac OS X 10.2, and on Linux it was the Luminocity prototype. As of 2008, some window managers using OpenGL include Compiz, Beryl, and the Quartz Compositor, while presently Desktop window manager uses DirectX 9.
Since some of OpenGL is still not supported in hardware, performance of OpenGL-based compositing should continue to improve as 3D cards improve. The popularity of stream processors in modern graphics cards opens up new possibilities for hardware acceleration, which can be accessed directly through CUDA.
[edit] Linux
- Further information: AIGLX
Under Linux/UNIX, despite the presence of compositing support in X11, the ability to do full 3D accelerated compositing relies on several architectural changes in the implementation to X11. These changes allow parts of the graphical environment to be run directly on the graphics card. Originally, a number of alternate X11 implementations designed around OpenGL began to appear, including Xgl, which uses OpenGL to provide a fully 3D environment for window managers.
Later, AIGLX would eliminate the need to use Xgl, and allow window managers to do 3D accelerated compositing on a standard X server, while still enabling DRI to reach the graphics card. Currently NVidia, Intel and ATI cards support AIGLX.
Compiz is probably the most well known on Linux for its cube effect. It includes a wide array of impressive 2D and 3D effects and runs very well even on slightly older video hardware.
[edit] Windows Vista
In 2007, the public release of Windows Vista introduced 3D compositing capabilities to the windows platform. [13] Of the three most popular mainstream desktop operating systems, (Microsoft Windows, Mac OS X, and Linux), Microsoft Windows was the last to demonstrate a working compositing window manager, Desktop window manager, which was released on January 30, 2007.
The delay was probably due to the fact that user interface in Windows 95 through Windows XP was so tightly integrated, and strictly two dimensional. Hardware accelerated compositing would have been impossible, or at least very limited and slow, although some applications including NVidia's Forceware included a transparent window feature under XP. [14] [15]
Microsoft has long held a philosophy of keeping backward compatibility with older applications, and many older applications have somewhat unorthodox methods of dealing with graphics, and graphics hardware. [16]
Another possible reason for the long delay in compositing coming to Windows probably stems for the tenuous balance it creates between responsiveness and appearance. Despite making good use of video hardware to speed up this interface, as little as five years ago most systems would not have met the requirements to run even a basic 3D compositor at an acceptable speed. [17] To be certain of as few problems as possible, Microsoft was forced to wait for graphics cards and computers to improve to a level where a certain minimal level of 3D support, CPU speed and memory was widely available and relatively inexpensive. However since computer speeds have been leveling off, this has taken longer than expected. [18]
Also hindering development would have been the large number of Windows gamers who demand the maximum 3D performance possible from their video hardware. Only offering games exclusive access to hardware accelerated functionality can make certain of this. Since compositing window managers force games to operate through another layer to access the graphics hardware, it would decrease performance.[citation needed]
Some believe that Microsoft's choice to include compositing in Windows Vista was a direct result of competition from Mac OS X and Linux whose more flexible graphical architectures allowed them to migrate easily to new technologies like compositing window managers without the need for extensive redesign work outside of the XServer and a few new applications. [19]
[edit] List of compositing window managers
- Compiz
- Desktop Window Manager and the Windows Aero user interface.
- KWin (since version 4)
- Metacity (since version 2.14)
- Xfwm (since version 4.2); included in Xfce.
[edit] Operating Systems With Composite Window Managers
[edit] External Links
- Compiz Demo at YouTube
- Comparison to Windows Aero of Ubuntu 7.10's Compiz at YouTube
- Mac OS X and the Quartz Compositor at YouTube
[edit] References
- ^ Desktop Window Manager
- ^ Mac OS X 10.4 Tiger: Page 13
- ^ Desktop Window Manager
- ^ Compiz.org :: Home/Start - Compiz
- ^ Blueprint: “Compositing window management (compiz/beryl)”
- ^ Mac OS X 10.4 Tiger: Page 13
- ^ A Brief History of Mac OS X
- ^ The (Re)Architecture of the X Window System
- ^ pkgsrc.se | The NetBSD package collection
- ^ The (Re)Architecture of the X Window System
- ^ Version History - Preferences Hide and Seek
- ^ Microsoft Windows History
- ^ Desktop Window Manager
- ^ TweakGuides.com - Nvidia Forceware Tweak Guide
- ^ Microsoft Watch - Operating Systems - Vista Delayed Again
- ^ ITNews » Microsoft
- ^ Windows Is So Slow, but Why? - New York Times
- ^ Moore's Law may no longer be relevant for IC companies | Geek.com
- ^ Francis Woodhouse - Down With Numbers » Xgl + Compiz = Fancy effects
|
|