組合窗口管理器是計算機圖形用戶接口的一部分,其畫窗口或它們的邊界。其也控制它們怎么顯示并且與它們互相交互,并且桌面環(huán)境的剩余部分。在窗口管理器和標準窗口管理器之間的主要不同在于不是輸出到通常的屏幕,程序都首先各自輸出到獨立的緩沖區(qū),或計算機中的臨時位置,在這里它們可以在顯示之前被操作。
從這些獨立的緩沖區(qū)輸出是由窗口管理器處理和合并的,或在一個共同的桌面上組合。結(jié)果程序現(xiàn)在行為是2D或3D對象獨立的。組合允許高級的視覺效果,例如透明,消退,縮放,復(fù)制,bending和contorting,shuffling以及重定向應(yīng)用程序。還有更多。
組合窗口管理器的歷史
2001年3月24,Mac OSX v10.0是第一個將工作組件和效果應(yīng)用的主流操作系統(tǒng),通過其Quartz組件提供。然而,compositiong沒有使用硬件加速。在2002年8月3,MAC OSX v10.2和Quartz極限,compositing的職責(zé)被移到顯示卡(對于某種類型的顯卡),這個時候其利用了硬件繪畫能力。
在X Windows系統(tǒng)中的compositiong要求許多重新的設(shè)計,其逐漸發(fā)生,并且慢慢打開了許多可能性。Metacity 2.8.4是X Windows系統(tǒng)composition窗口管理器之一,其包括在GNOME中,并且在2004年8月份release(盡管沒有confirmed的報告說個功能性已經(jīng)在CVS了,并且在2003年11月的不穩(wěn)定release2.7.0,同樣對于2004年二月的穩(wěn)定發(fā)布2.8.0)。
第一個Windows上的確認的compositiong窗口管理器是在windows vista中發(fā)布的,其包括DWM.
基本的2D組合
Windows基本上是2D平坦的對象,窗口管理器主要工作在2D模式。這對于在擴展管理器到3D或嘗試創(chuàng)建3D風(fēng)格可見效果的時候是一個問題。
在Metacity,例如,windows獨立的畫,并且添加到桌面上,因此即使窗口的隱藏部分也已經(jīng)被主動的rendered。當靜態(tài)處理許多3D相關(guān)的屬性,來自2D組合窗口管理器的輸出沒有深度,意味著窗口按照平面方式存在和陰影,如果支持,這些都很不現(xiàn)實。
同樣2D分量沒有使用硬件加速,如果Metacity一樣。這表明對于透明這這樣的操作將顯著降低。
對于眼睛來說沒有顯著的不同,2D組合創(chuàng)造一個更現(xiàn)實的窗口系統(tǒng)模型,較棧窗口管理器來說,其允許象窗口透明這樣的特性,并且去除了在X視頻擴展中的色度key或綠屏。
3D組合窗口管理器
最近幾個3D加速組合窗口管理器已經(jīng)成為主流,包括Compiz,compiz Fusion,DWM。Mac OS X自X 10.0開始已經(jīng)使用組合窗口管理功能。 OpenGL或DirectX可能用在窗口管理器中來減輕顯卡的rendering工作。到2008,一些使用OpenGL的窗口管理器包括Compiz,Beryl和Quartz,而DWM使用DirectX 9.0。
由于一些OpenGL沒有被硬件支持,基于OpenGL的組合的性能會連續(xù)要提高。
Windows Vista
2007年,Vista的公開發(fā)布引進了3D組合能力到windows平臺。作為三個最主流的桌面操作系統(tǒng)(Windows,Mac OS X和Linux),微軟Windows是最后一個采用窗口組合管理器的。DWM在2007年1月30號release。
這個遲緩的原因可能由于從Windows95到Windows X之間的用戶接口是如此緊密集成,并且嚴格限制為2D.硬件加速compositiong不可能,或至少非常有限或很慢,盡管許多程序包含NVidias的Forceward其在XP中包含了一個透明窗口特性。
微軟有長期保持向后兼容的哲學(xué),許多老的程序有一些非傳統(tǒng)的方法來處理圖形和圖形硬件。
另外一個延緩這么久的原因是來自在創(chuàng)建相應(yīng)性和外表之間細微的平衡。盡管充分利用硬件減速來提高這個接口,在5年前,許多系統(tǒng)沒有碰到這些需求,即使以可接受的速度運行最基本的3D組合。為了盡量少的問題,微軟被迫等待圖形卡和計算機提高到一定的level,最小的3D支持、CPU速度和內(nèi)存等充裕并且相對不再昂貴。然而,由于計算機速度已經(jīng)呈現(xiàn)平穩(wěn),這比期望的化的時間長。由于組合窗口管理器強迫游戲通過另外一層操作來訪問圖形硬件,其降低性能。一些人相信微軟選擇將compositing包括在Vista中是與Mac OS X和Linux直接競爭的結(jié)果,這些操作系統(tǒng)更彈性的圖形架構(gòu)允許它們更容易移植到新技術(shù)上而不需要重新設(shè)計,例如組合窗口管理器。
可用性考慮
當組合窗口管理已經(jīng)在耀眼的視覺效果,更快的速度上賺足了名譽,它們在計算機可用性方面也扮演著重要的角色。窗口metaphor的真正目的是通過使用熟悉的概念來提高計算機的可用性。盡管使用組合和3D,可能提高了metaphor的質(zhì)量,并且因此提高了整個接口的可用性。
放大鏡
屏幕放大鏡允許用戶快速的放大屏幕的一個區(qū)域,這樣對于遠處或視力受損者能清晰的閱讀。Zoom效果例如放大(尤其是魚眼)和在Cvompiz中的zoom桌面效果提供這一功能。這些效果能很容易他哦難過鍵盤和鼠標快捷鍵來調(diào)整。
窗口切換
經(jīng)常用戶有幾個相似名字和圖標的程序。例如,同時打開10-20web瀏覽器窗口不是一件尋常的事情,由于窗口全名至少部分的被遮住,正常用戶不得不記住那些程序在任務(wù)欄上,或使用其他內(nèi)存或可視效果的變體。這個程序在許多窗口打開的時候變壞,最終導(dǎo)致用戶失敗,click每個button直到正確的窗口彈出來。
Compiz(Linux) Vista和Mac OS現(xiàn)在提供了一些改進來允許用戶更容易的看到或選擇運行的程序。窗口的Live預(yù)覽在任務(wù)欄項目上的可用,允許用戶監(jiān)視或更容易的辨別每個程序。
Flip切換在Linux和Vista上有非常相似的外表和感覺,兩者都允許用戶使用鼠標滾輪或鍵盤來flip運行窗口。
Widget層
Widget層在Linux和Mac OS上都有,在Mac OS上,特別的設(shè)置和頻繁使用的程序,例如,時鐘,notepad或計算器,只要按一下鍵盤就出現(xiàn),提供快速的訪問這些通用程序的工具。Widget層通過保持通用功能的裝載和快速訪問加速工作。
在Compiz,Wideget層是空初始的,允許用戶特指那些應(yīng)用程序?qū)儆趙idget層。
Vista也提供了相似的功能,其通過能從屏幕邊上彈出的小工具或在side-bar中。
過度和其他效果
在現(xiàn)實世界中,紙通常不會突然從一個桌面消失,并且抽屜也不會立即從桌子里面彈出來。對于許多用戶來說,窗口的移動和趨勢突然在屏幕上出現(xiàn)或消失是很迷惑的。
許多效果能讓用戶明白到底發(fā)生了什么。窗口可能逐漸fade而不是立即消失,避免視覺上的困惑。
對于提高可用性來說,這些效果對于年長者或視力受損的人來說能屏幕的逐漸改變。