组合窗口管理器是计算机图形用户接口的一部分,其画窗口或它们的边界。其也控制它们怎么显示并且与它们互相交互,并且桌面环境的剩余部分。在窗口管理器和标准窗口管理器之间的主要不同在于不是输出到通常的屏幕,程序都首先各自输出到独立的缓冲区,或计算机中的临时位置,在这里它们可以在显示之前被操作。
从这些独立的缓冲区输出是由窗口管理器处理和合并的,或在一个共同的桌面上组合。结果程序现在行为是2D或3D对象独立的。组合允许高级的视觉效果,例如透明,消退,缩放,复制,bending和contorting,shuffling以及重定向应用程序。还有更多。
组合窗口管理器的历史
2001年3月24,Mac OSX v10.0是第一个将工作组件和效果应用的主流操作系统,通过其Quartz组件提供。然而,compositiong没有使用硬件加速。在2002年8月3,MAC OSX v10.2和Quartz极限,compositing的职责被移到显示卡(对于某种类型的显卡),这个时候其利用了硬件绘画能力。
在X Windows系统中的compositiong要求许多重新的设计,其逐渐发生,并且慢慢打开了许多可能性。Metacity 2.8.4是X Windows系统composition窗口管理器之一,其包括在GNOME中,并且在2004年8月份release(尽管没有confirmed的报告说个功能性已经在CVS了,并且在2003年11月的不稳定release2.7.0,同样对于2004年二月的稳定发布2.8.0)。
第一个Windows上的确认的compositiong窗口管理器是在windows vista中发布的,其包括DWM.
基本的2D组合
Windows基本上是2D平坦的对象,窗口管理器主要工作在2D模式。这对于在扩展管理器到3D或尝试创建3D风格可见效果的时候是一个问题。
在Metacity,例如,windows独立的画,并且添加到桌面上,因此即使窗口的隐藏部分也已经被主动的rendered。当静态处理许多3D相关的属性,来自2D组合窗口管理器的输出没有深度,意味着窗口按照平面方式存在和阴影,如果支持,这些都很不现实。
同样2D分量没有使用硬件加速,如果Metacity一样。这表明对于透明这这样的操作将显著降低。
对于眼睛来说没有显著的不同,2D组合创造一个更现实的窗口系统模型,较栈窗口管理器来说,其允许象窗口透明这样的特性,并且去除了在X视频扩展中的色度key或绿屏。
3D组合窗口管理器
最近几个3D加速组合窗口管理器已经成为主流,包括Compiz,compiz Fusion,DWM。Mac OS X自X 10.0开始已经使用组合窗口管理功能。 OpenGL或DirectX可能用在窗口管理器中来减轻显卡的rendering工作。到2008,一些使用OpenGL的窗口管理器包括Compiz,Beryl和Quartz,而DWM使用DirectX 9.0。
由于一些OpenGL没有被硬件支持,基于OpenGL的组合的性能会连续要提高。
Windows Vista
2007年,Vista的公开发布引进了3D组合能力到windows平台。作为三个最主流的桌面操作系统(Windows,Mac OS X和Linux),微软Windows是最后一个采用窗口组合管理器的。DWM在2007年1月30号release。
这个迟缓的原因可能由于从Windows95到Windows X之间的用户接口是如此紧密集成,并且严格限制为2D.硬件加速compositiong不可能,或至少非常有限或很慢,尽管许多程序包含NVidias的Forceward其在XP中包含了一个透明窗口特性。
微软有长期保持向后兼容的哲学,许多老的程序有一些非传统的方法来处理图形和图形硬件。
另外一个延缓这么久的原因是来自在创建相应性和外表之间细微的平衡。尽管充分利用硬件减速来提高这个接口,在5年前,许多系统没有碰到这些需求,即使以可接受的速度运行最基本的3D组合。为了尽量少的问题,微软被迫等待图形卡和计算机提高到一定的level,最小的3D支持、CPU速度和内存等充裕并且相对不再昂贵。然而,由于计算机速度已经呈现平稳,这比期望的化的时间长。由于组合窗口管理器强迫游戏通过另外一层操作来访问图形硬件,其降低性能。一些人相信微软选择将compositing包括在Vista中是与Mac OS X和Linux直接竞争的结果,这些操作系统更弹性的图形架构允许它们更容易移植到新技术上而不需要重新设计,例如组合窗口管理器。
可用性考虑
当组合窗口管理已经在耀眼的视觉效果,更快的速度上赚足了名誉,它们在计算机可用性方面也扮演着重要的角色。窗口metaphor的真正目的是通过使用熟悉的概念来提高计算机的可用性。尽管使用组合和3D,可能提高了metaphor的质量,并且因此提高了整个接口的可用性。
放大镜
屏幕放大镜允许用户快速的放大屏幕的一个区域,这样对于远处或视力受损者能清晰的阅读。Zoom效果例如放大(尤其是鱼眼)和在Cvompiz中的zoom桌面效果提供这一功能。这些效果能很容易他哦难过键盘和鼠标快捷键来调整。
窗口切换
经常用户有几个相似名字和图标的程序。例如,同时打开10-20web浏览器窗口不是一件寻常的事情,由于窗口全名至少部分的被遮住,正常用户不得不记住那些程序在任务栏上,或使用其他内存或可视效果的变体。这个程序在许多窗口打开的时候变坏,最终导致用户失败,click每个button直到正确的窗口弹出来。
Compiz(Linux) Vista和Mac OS现在提供了一些改进来允许用户更容易的看到或选择运行的程序。窗口的Live预览在任务栏项目上的可用,允许用户监视或更容易的辨别每个程序。
Flip切换在Linux和Vista上有非常相似的外表和感觉,两者都允许用户使用鼠标滚轮或键盘来flip运行窗口。
Widget层
Widget层在Linux和Mac OS上都有,在Mac OS上,特别的设置和频繁使用的程序,例如,时钟,notepad或计算器,只要按一下键盘就出现,提供快速的访问这些通用程序的工具。Widget层通过保持通用功能的装载和快速访问加速工作。
在Compiz,Wideget层是空初始的,允许用户特指那些应用程序属于widget层。
Vista也提供了相似的功能,其通过能从屏幕边上弹出的小工具或在side-bar中。
过度和其他效果
在现实世界中,纸通常不会突然从一个桌面消失,并且抽屉也不会立即从桌子里面弹出来。对于许多用户来说,窗口的移动和趋势突然在屏幕上出现或消失是很迷惑的。
许多效果能让用户明白到底发生了什么。窗口可能逐渐fade而不是立即消失,避免视觉上的困惑。
对于提高可用性来说,这些效果对于年长者或视力受损的人来说能屏幕的逐渐改变。