什麽是桌面管理器
桌面窗口管理器是什麽呢?它是Vista中的壹個新組件:Desktop Window Manager(DWM)。它建立在WPF核心圖形層組件基礎之上。還記得我在第壹個Post中所提到的Composition引擎嗎?DWM的桌面合成就是建立在這個Composition引擎基礎之上的新特征。它的出現幾乎改變了Vista中應用程序的屏幕象素顯示方式。
通過DWM的桌面合成,應用程序的顯示不再是直接畫到屏幕上,而是壹個顯示內存中的壹個離屏 Surface。然後由DWM將這些Surface合成顯示到屏幕之上。
從用戶體驗的角度看,啟用DWM後,提供的視覺效果有毛玻璃框架、3D窗口變換動畫、窗口翻轉和高分辨率支持。其中最明顯的特征有:任務欄窗口的實時縮略圖;Alt-Tab和Win-Tab組合鍵所看到的效果。
桌面合成(Composition)
在Vista之前,Windows要求應用程序畫自己的可見區域,它們可以直接畫在顯卡的視頻緩沖裏面。而在Vista,系統要求應用程序把整個表面畫到離屏Surface當中。然後由DWM控制所有的離屏表面,並把它們合成到壹起顯示到真正的屏幕上。
現在計算機的圖形芯片飛速發展,具有了很強的處理能力,現在它們主要用於遊戲等方面。DWM的主要目標就是利用圖形芯片的處理能力也給非遊戲用戶帶來盡可能好的體驗。因此DWM是基於DirectX,特別是Direct3D。更準備是說,DWM是直接建立在壹個稱為Milcore的層次之上。Milcore又建立在DirectX之上。最終是用Direct3D紋理來表示窗口內容和窗口框架。 DWM/Milcore調用適當的Direct3D函數把所有的Direct3D紋理合成為最終的桌面。Vista桌面就可以理解為壹個全屏幕的 Direct3D應用程序。