Compositing window manager

Compositing window manager
Compiz showing the desktop cube effect in Ubuntu.

A compositing window manager is a type of window manager. A window manager is software that draws a graphical user interface on a computer display – it positions windows, draws additional elements on windows (such as borders and title bars), and controls how windows interact with each other, and with the rest of the desktop environment. Within the Microsoft Windows environment, for example, earlier (pre-Windows 2000)[when?] window managers made each individual program responsible for rendering its own window directly to display memory. A compositing window manager, however, combines the buffers of each window into a unified framebuffer representing the entire screen.[1][2]

Compositing window managers may perform additional processing on buffered windows, applying 2D and 3D animated effects such as alpha compositing, fading, scaling, rotation, duplication, bending and contortion, shuffling, blurring, redirecting applications, and translating windows into one of a number of displays and virtual desktops. Computer graphics technology allows for visual effects to be rendered in real time such as drop shadows, live previews, and complex animation.[3][4] Since, technically, the screen is double buffered, it does not flicker during updates.

The most commonly used compositing window managers include:

Contents

Comparison with stacking window managers

The window manager sends each window a message to repaint itself whenever appropriate (such as when it is resized, or when another window passes in front of it). With a stacking manager, the repainting process can become corrupted when a program that is slow, unresponsive or buggy does not respond to messages in a timely manner.[5][6] A malicious program can cause the system to become unstable by simply neglecting to repaint its window. One or more of the following conditions may result:

  • a clipped window does not repaint uncovered regions, resulting in either blank spaces or a "trail" left behind from another window
  • portions of windows (such as decorative drop shadows) are left behind and not properly painted over
  • the mouse pointer is corrupted[7][unreliable source]
  • screen updates become unbearably slow[8]
  • the entire screen freezes until the program either responds or is terminated[9]

With a compositing manager, if a window were stop repainting itself when requested by the window manager, its last repaint remains displayed and the window might be dimmed. Often the title changes to reflect the status of the window as unresponsive. A program may prevent its window from being moved or unmapped, but generally will not cause repainting problems. Newer operating systems with stringent hardware requirements, such as Windows 7, are less tolerant of bugs arising from faulty performance tuning, and will terminate buggy programs as a preventive measure.

History

One of the first systems with a compositing windowing system was the Commodore Amiga. Applications could first request a region of memory outside the current display region for use as bitmap. The Amiga windowing system would then use a series of bit blits using the system's hardware blitter to build a composite of these applications' bitmaps, along with buttons and sliders, in display memory, without requiring these applications to redraw any of their bitmaps.

Metacity window manager, part of GNOME.

Windows 2000 was the first version of Windows with native support for alpha blending.[10] Microsoft mentioned plans to develop a 3D-accelerated window manager in a project code-named "Windows 2010" before the release of Windows XP. The "glass" and blur effects in Windows Aero were introduced well into the Longhorn development cycle.

On March 24, 2001, Mac OS X v10.0 became the first mainstream operating system to feature software-based 3D compositing and effects, provided by its Quartz component. With the release of Mac OS X v10.2 and Quartz Extreme, the job of compositing could be moved to dedicated graphics hardware.[2][11]

Sun Microsystems developed an ambitious 3D graphics system to layer on top of its Swing toolkit, which was called Project Looking Glass. It was first demonstrated at the 2003 LinuxWorld Expo. Although Apple threatened to sue Sun for breach of intellectual property rights, some of the functionality in Looking Glass has been implemented in other window managers. A few years into its development, it was discontinued by Sun, whose primary business was selling enterprise mainframes.

The Desktop Window Manager in Project Longhorn was first presented to the 2003 Windows Hardware Engineering Conference demonstrating wobbly windows.[12] Severe delays in the development of Longhorn caused Microsoft not to debut its 3D compositing window manager until the release of Windows Vista in January 2007.[13]

Compositing under the X Window System required some redesign, which took place incrementally.[14] Metacity 2.8.4 was released in August 2004.[15] However, the first widely publicized compositing window manager for X was Xfwm, released in January 2005.[16] On 2005-01-26, Compiz was released, introducing fully accelerated 3D compositing to the Linux platform.[17] KDE's KWin also supports compositing.

2D compositing

The window was originally designed as a 2D planar element, which presents challenges when designing a manager to handle three dimensions, or when attempting to create 3D-style visual effects. Metacity, for example, draws windows one at a time, so that hidden components are actively rendered. Even with similar capabilities as their 3D counterparts, the output from 2D compositing window managers has no depth, meaning that windows still exist in a plane. Quasi-3D effects, such as the dimpled buttons on Mac OS Classic or the bevels and shading on Windows 2000, are usually less realistic than true z-axis rendering techniques such as diffuse reflection.

3D compositing

Modern compositing window managers, including Desktop Window Manager, Quartz Compositor and Compiz use 3D acceleration. Most communicate with graphics hardware via programming interfaces such as OpenGL or Direct3D.

The earliest widespread implementations using this technique were released for the Mac in Mac OS X 10.2, and for Linux in a Luminocity prototype. Currently, window managers using OpenGL include Compiz, KWin, and the Quartz Compositor, while Desktop Window Manager currently uses DirectX 9. OpenGL is still not fully supported in hardware, so performance of OpenGL-based compositing should continue to improve as hardware improves.

Microsoft Windows

While the window manager in Windows 2000 does perform compositing, it does not perform transformations such as a per-pixel alpha. Few commercial applications took advantage of alpha blending; freeware programs were among the first to experiment with it, albeit through optional settings.[18]

Windows Vista and Windows 7 allow the user to disable Desktop Window Manager by selecting the Windows Basic appearance settings. In addition, it is automatically disabled by Windows in order to perform hardware overlay through the Overlay Mixer Filter.

Linux

Stacking window managers running on X server required a chroma keying or green screening extension. Compositing was introduced by way of the "Composite" extension. Compositing managers use hardware acceleration through this extension, if available.

Ubuntu 8.04 Hardy Heron running Compiz's Shift Switcher in Flip mode.

Under Linux and UNIX, the ability to do full 3D-accelerated compositing required fundamental changes to X11 in order to use hardware acceleration. Originally, a number of modified X11 implementations designed around OpenGL began to appear, including Xgl. The introduction of AIGLX would eliminate the need to use Xgl, and allow window managers to do 3D accelerated compositing on a standard X server, while still allowing for direct rendering. Currently NVIDIA, Intel and ATI cards support AIGLX.

Compiz introduced a cube effect, which allows the user to see up to 6 virtual desktops at once. Each desktop is converted into a surface texture of the cube, which can be rotated at will. Compiz displays a wide array of 2D and 3D effects and has relatively low hardware requirements.[19] Compiz is included in Ubuntu Linux, and is enabled automatically when supported hardware and drivers are available.

Mutter (Metacity + Clutter) has replaced Metacity as the default window manager for Gnome. It will be featured in the GNOME Shell component of Gnome 3.0. It uses the display engine Clutter, which has been ported to all major operating systems, netbooks and smartphones.

Since version 4, KDE's window manager KWin has compositing capabilities. KWin features much of the same functionality also present in Compiz.

Java

Project Looking Glass was a window manager combining 3D rendering and the cross-platform Java programming language. It is now inactive and released under the GNU Public License. The Granular Linux live CD distribution includes Looking Glass as an optional window manager.

In the aftermath of it being discontinued, some of its features, such as cover switching and thumbnail live previews, have found their way onto other window managers. Its more unique features included window tilting, two-sided window frames and parallax scrolling backgrounds.

AmigaOS 4 and MorphOS

Alpha blending in Amiga OS 4.1

While they are able to run on 3D-capable hardware, AmigaOS and MorphOS are designed to run on old legacy Amiga computers, starting with the Amiga 1200. As such, their window managers have mostly planar rendering capabilities that include composite layering, alpha blending, gradients, high resolution and multiple desktops ("screens") that can partially clip one another.

Usability and eye candy

The compositing approach makes it easier to implement a number of features that make the user interface more accessible, simpler to use or with eye candy elements.

Magnifiers

The magnification effect in Compiz (click image to view in scale).

Vector graphics, such as true-type fonts and 3D-accelerated elements, can be expanded without degradation (usually due to aliasing). A screen magnifier enlarges an area of the screen, making portions of text easier to read – whether to prevent eye strain, for the visually impaired, or simply at a distance. Zoom effects such as the fish eye magnifier and zoom desktop effects provide this functionality.

Live preview

Live preview in Compiz.

A preview of a window can be displayed in a pop-up thumbnail when the user hovers its associated taskbar button. This allows the user to identify and manage several concurrently running programs.

Window switching

Basic window switching in Xgl.

Windows with similar names and icons tend to cause confusion, especially when their title bars overlap; the position of every such window on the taskbar has to be memorized. When there are many open windows in this manner, the user often has to resort to trial and error—clicking each taskbar button one-by-one—before proceeding. Window switching allows one to quickly preview several windows at once by temporary rearranging them against a decorative background. After a selection is made, the windows are then restored to their original arrangement.

Selection begins when the user either enters a hotkey combination, moves the mouse pointer to a hotspot on the screen, or, in some situations, uses the mouse's scroll wheel. Items are navigated using the keyboard or mouse. An item is selected by either releasing the hotkey, hitting the Enter key or clicking on it with the mouse.

Flip switching

Flip switching in Compiz.

The flip switcher is an enhancement to the Alt-Tab switching feature. Running windows are arranged into a stack – similar to a flip-style selector in a 1950s jukebox, or a Rolodex. In some systems, the user can press Alt-Shift-Tab to navigate backwards. Visual transitions are applied to each item while navigating.

Common implementations of flip switching include Flip 3D in Windows and Shift Switcher in Compiz.

Cover switching

Screenshot showing Cover Switch in KWin.
Cover Switch in KWin.
Examples of cover switching

Cover switching is like flip switching with a few, mostly visual, differences. Instead of one stack with the selection at the top, two symmetrical stacks are shown with the current selection front and center (similar to the window tilting feature in Looking Glass).

Cover Flow is an implementation of cover switching in Mac OS X. More recent versions use blurring to de-emphasize non-selected items. Cover Flow has also been implemented in other software published by Apple such as iTunes.

This is also referred to as "flick-book view."

Ring switching

Ring switching in Compiz Fusion.

Ring switching is like flip switching, except the windows move in a circle, with the current selection in front, usually at the bottom. Most compositing window managers include this feature out of the box, and third-party applications, such as 3d-desktop, are also available.

Grouping

The user can group windows together, such that only one window at a time is visible in each group. In Compiz, the window frame is flipped to indicate when the active window in its group has been changed.

Exposé

Mac OS X displays a preview of every window on the screen by tiling them. Other systems with similar functionality (Microsoft Windows, Compiz, KWin, third-party applications) are referred to as Exposé clones. The hotkey to activate Exposé is not Alt-Tab, but rather F3.

Mission Control

Mac OS X 10.7 combines several other compositing features developed by Apple—such as Exposé, Dashboard, and Spaces—into a larger program called Mission Control.

Widget engines

On Mac OS, "widgets" (single-purpose applets) such as a clock, note pad, and calculator can appear by pressing a hotkey. Widget engines speed work by keeping commonly used widgets accessible while unobtrusive. They are handled by the Dashboard program in Mac OS.

Compiz starts with a blank Widget Layer, allowing the user to add applications by clicking on them. A variety of widgets are supported, including Screenlets, gDesklets and SuperKaramba.[20]

Windows Vista provides gadgets that the user can place on the Windows Sidebar (Sidebar gadgets), a Windows Live start page (Web gadgets), or an external display, such as the user's mobile phone (SideShow gadgets). The Windows Sidebar was a visible partition in Windows Vista, and was eliminated in Windows 7, along with Sidebar gadgets which were changed to Desktop Gadgets.

Transitions and other effects

Before compositing window managers were developed, windows would instantly jump in and out of view, which is incongruent with the interface metaphor (and with a physical office setting). The sudden appearance and disappearance of GUI elements may seem confusing or even chaotic to inexperienced users.[citation needed] Visual transitions provide context and help distinguish the causal relationships of GUI elements. Instead of just disappearing, a window may fade away, or visibly shrink to the taskbar. A pull-down menu that has been clicked may smoothly radiate outward from the menu bar, making it easier to determine its origin and purpose.

Gradual and natural transitions may be[original research?] especially helpful for elderly or visually impaired users who notice changes to the screen more slowly and with less clarity. For example, an inexperienced user may impulsively click on a menu that was activated by accident, causing him or her to lose work. The short delay necessary to display a visual transition may give the user enough time to make a conscious decision, and avoid such mistakes.

User Interface Façades

Metisse implements user interface façades, a system that provides users with simple ways to adapt, reconfigure, and re-combine existing graphical interfaces, through the use of direct manipulation techniques.[21]

List of compositing window managers

  • 3Dwm, a three-dimensional workspace manager[22] and general-purpose platform for 3D user interfaces.[23][24][25] As of June 2006 this project is inactive.
  • Desktop Window Manager and the Windows Aero theme on Windows
  • Quartz Compositor on Mac OS X
  • Compiz
  • KWin (since version 3.3)
  • Mutter
  • Xfce's Xfwm (since version 4.2)
  • xcompmgr—a minimal alternative to Compiz
  • Ecomorph—a combination of ecomp (a hack of Compiz made to work with Enlightenment) and the ecomorph module for Enlightenment.
  • Cairo Compmgr (Cairo Composite Manager)—a compositing add-on for existing window managers. It uses Cairo, a vector graphics library also used in GTK+.
  • MCompositor—used on MeeGo handsets.
  • Metisee window system

Operating systems with compositing window managers

  • Windows Vista, Windows 7, Windows Server 2008 (installable as an optional component)
  • Mac OS X 10.0 and later
  • GNU/Linux (with XOrg/AIGLX or Xgl)
  • FreeBSD
  • OpenSolaris
  • AmigaOS 4
  • MorphOS 2.0 and later

See also

References

  1. ^ "Desktop Window Manager". Msdn2.microsoft.com. http://msdn2.microsoft.com/en-us/library/aa969540(VS.85).aspx. Retrieved 2008-11-21. 
  2. ^ a b "Mac OS X 10.4 Tiger: Page 13". Arstechnica.com. http://arstechnica.com/reviews/os/macosx-10-4.ars/13. Retrieved 2008-11-21. 
  3. ^ "Compiz.org :: Home/Start – Compiz". Compiz.org. http://compiz.org/. Retrieved 2008-11-21. 
  4. ^ "Blueprint: “Compositing window management (compiz/beryl)”". Blueprints.launchpad.net. https://blueprints.launchpad.net/ubuntu/+spec/composite-by-default. Retrieved 2008-11-21. 
  5. ^ "Multiple Internet Explorer Instances Do Not Redraw Screen Correctly". Microsoft. 2003-10-09. http://support.microsoft.com/kb/246113. Retrieved 2010-12-17. 
  6. ^ "PHOTOSCORE SUPPORT FAQ". http://www.neuratron.com/faq.htm#Why_do_PhotoScore_for_Mac_windows_not_redraw_properly_after_scanning_with_Epson_scanners_. Retrieved 2010-12-17. 
  7. ^ "Mouser cursor corruption on xinerama". Canonical Ltd.. 2006-08-02. http://ubuntuforums.org/archive/index.php/t-227902.html. Retrieved 2010-12-17. 
  8. ^ "Archived from groups: microsoft.public.windowsxp.video". Bestofmedia Group. 2004-07-18. http://www.tomshardware.co.uk/forum/140227-35-screen-redraw-slow-nvidia-nforce-system-device-driver. Retrieved 2010-12-17. 
  9. ^ "Mustang: Swing apps freeze then painting corrupt". Oracle. 2006-05-01. http://forums.java.net/node/655980. Retrieved 2010-12-17. 
  10. ^ "Alpha Blending (Transparent) Windows". CodeGuru. http://www.codeguru.com/cpp/frameworks/advancedui/windowingtechniquesandclasses/article.php/c3213/. 
  11. ^ "A Brief History of Mac OS X". Kernelthread.com. http://www.kernelthread.com/mac/osx/history.html. Retrieved 2008-11-21. 
  12. ^ "Microsoft's Longhorn 3D UI– More Info Emerges". ExtremeTech. http://www.extremetech.com/article2/0,1697,1154262,00.asp. 
  13. ^ "Microsoft Windows History". Computerhope.com. http://www.computerhope.com/history/windows.htm. Retrieved 2008-11-21. 
  14. ^ "The (Re)Architecture of the X Window System". Keithp.com. http://keithp.com/~keithp/talks/xarch_ols2004/xarch-ols2004-html/. Retrieved 2008-11-21. 
  15. ^ "pkgsrc.se | The NetBSD package collection". Pkgsrc.se. http://pkgsrc.se/wm/metacity/commit. Retrieved 2008-11-21. 
  16. ^ "Xfce 4.2.0 released!". foo-projects.org. 2005-01-16. http://foo-projects.org/pipermail/xfce/2005-January/012311.html. Retrieved 2009-02-25. 
  17. ^ "Version History – Preferences Hide and Seek". Hideseek.sourceforge.net. http://hideseek.sourceforge.net/history.html. Retrieved 2008-11-21. 
  18. ^ "Example alpha transparency utility". http://www.elgorithms.com/downloads/chaoscrystal.php. 
  19. ^ "Installing/running Compiz on GeForce2 MX/MX 400". http://forum.compiz-fusion.org/viewtopic.php?t=6623. 
  20. ^ "Plugins/Widget - Compiz Wiki". Compiz. http://wiki.compiz.org/Plugins/Widget. Retrieved 2010-12-26. 
  21. ^ "Metisse: User Interface Façades". Metisse. http://insitu.lri.fr/metisse/facades/. Retrieved 2011-08-03. 
  22. ^ 3Dwm - About, 2004-01-23, archived from the original on 2004-02-06, http://web.archive.org/web/20040206010042/http://www.3dwm.org/html/about_introduction.php, retrieved 2010-02-04 
  23. ^ 3Dwm - About - FAQ - About the Project, 2003-12-03, archived from the original on 2004-02-24, http://web.archive.org/web/20040224050932/http://www.3dwm.org/faq/index.php#category-About%20the%20Project, retrieved 2010-02-04 
  24. ^ 3D window manager, http://w3.msi.vxu.se/~cha/VR_forskning/3dwm.html, retrieved 2010-12-16 
  25. ^ Yeargin, Ray (2005-03-31), 3DWM: A screenshot look at the 3D desktop, http://librenix.com/?inode=1237, retrieved 2010-12-16 

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Window manager — A window manager is computer software that controls the placement and appearance of windows within a windowing system in a graphical user interface. [ [http://dictionary.reference.com/browse/window%20manager window manager Definitions from… …   Wikipedia

  • Desktop Window Manager — For the X Window System window manager, see dwm. Desktop Window Manager A component of Microsoft Windows Details Included with Windows Vista Windows Server 2008 Windows 7 Windows Server 2008 R2 …   Wikipedia

  • X window manager — An X window manager is a window manager which runs on top of the X Window System, a windowing system mainly used on Unix like systems. Unlike the Mac OS (Apple Macintosh) and Microsoft Windows platforms, which have historically provided a vendor… …   Wikipedia

  • Stacking window manager — A stacking window manager is a window manager that draws all windows in a specific order, allowing them to overlap, using a technique called painter s algorithm. All window managers which allow the overlapping of windows, but are not compositing… …   Wikipedia

  • Beryl (window manager) — Beryl Screenshot of Fedora Core 6 using Beryl Developer(s) …   Wikipedia

  • Stаcking window manager — A stacking window manager is a window manager that draws all windows in a specific order, allowing them to overlap, using a technique called painter s algorithm. All window managers which allow the overlapping of windows, but are not compositing… …   Wikipedia

  • Mutter (window manager) — Mutter Developer(s) GNOME Team Stable release 3.2.0 / September 28, 2011; 53 days ago (2011 09 28)[1] Written in …   Wikipedia

  • cwm (window manager) — cwm Original author(s) Marius Aamodt Eriksen Developer(s) Marius Aamodt Eriksen, Andy Adamson, Niels Provos, Martin Murray, Dimitris Economou, Antti Nyknen …   Wikipedia

  • Enlightenment (window manager) — Enlightenment Enlightenment DR17 D …   Wikipedia

  • Dynamic window manager — In computing, a dynamic window manager is a tiling window manager where windows are tiled based on preset layouts between which the user can switch. Layouts typically have a master area and a slave area. The master area usually shows one window,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”