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