DWM是Windows上比較可見的特征之一。這意味著我們要拋棄Window Presentation Foundation(Aalon)而工作在DWM上嗎?決不,DWM建立在Avalon的核心圖形層上,也是由Avalon相同的Team開發的。
DWM的外部特征
DWM當然之后Vista的一部分,它的特點包括在Windows Vista Aero體驗中。這里將拉出來幾個可識別的特點。
這是Aero Glass,半透明的外表是Aero提供的;窗口邊框后面模糊的內容,設計來允許用戶關注窗口本身而不是后面的東西。 |
|
這是live 小圖片預覽,提供在Vista的任務欄上 |
 |
這是Windows Flip和Window Flip3D,更新的Vista體驗可以通過Alt-tab和Windows-tab來切換。 |
 |
桌面組合
到目前位置Vista最大的改變就是引進桌面組合。這成為一切都由DWM執行的基礎。桌面組合的主要特點是:應用程序取得屏幕上像素的方法已經本質的改變。
在Windows的哥哥版本,直到XP,程序通過窗口來paint他們的可見區域,并且它們直接paint到buffer,然后現實到顯卡。有了Vista,程序通過窗口來paint它們的整個表面到一個離屏(offscreen)的表面(可能叫做位圖,緩沖區或紋理),并且DWM處理所有這些offscreen表面,并且組合在一起放到onscreen緩沖區。
再次閱讀前面一段。從Windows系統顯示遠景來看,這根據實現的特性的深奧的提示,并且也能獲得質量。一些例子:
訪問窗口
現在程序是render到offscreen,這些offscreen表示能用在其他地方。這就是Flip,Flip3D和小圖片特性怎么樣工作的,并且其他的特性也能利用這個點。
不要在窗口操作中將背景程序牽涉進來
當窗口移動通過XP或以前的屏幕時,背景窗口部分僅僅在背景窗口蘇醒并且開始paint的時候可見(相應WM_PAINT消息,其收到頂級窗口的移動消息)。對于非響應背景程序,或即使是響應的程序但正好是page out的,也會導致很差的用戶體驗。
考慮移動paint程序窗口通過一個IE窗口。在XP或之前的OS中,下面的癥狀是不幸的但也是非常普通的:兩個case中下面的IE程序不能足夠快的repaint它自己來避免由移動Paint窗口留下的尾巴。
在Vista下,就不是這樣的情況了,下面的窗口不會收到WM_PAINT消息,并且不會被請求要render,由于它們的內容已經在DWM中,并且用來組合這個screen的。
Tear free體驗:
假定,DWMrender到screen,DirextX提供的典型地用在游戲上最新技術能用來整個桌面體驗。特別低,圖形卡flip前緩沖區能力在屏幕上移動,增加了用戶體驗的平滑行和質量。
高分辨率的支持:
主要的程序輸出都是對監視器分辨率(DPI)不可知的。隨著高分辨率監視器的增加(120 DPI,144DPI),程序出現在非常小的物理空間會帶來比較壞的體驗。因為DWM有訪問程序窗口的offscreen,DWM是唯一縮放這個DPI無知程序的地方,將其最終展現給用戶,提高高分辨率監視器上的體驗。
將來可能的topic
桌面組合是DWM提供的最基礎的方面,但我們已經僅僅簡單說了一下表面的主題,那里仍然有許多關于探索和完全理解我們在Vista中正在做什么的topic。這里錯略列了幾個topic:
1.DWM使用 DirextX, GPU和硬件加速
2.Vista顯示驅動模型對DWM的重要性和影響
3.重定向GDI和DirextX程序
4.怎么樣揭示正在使用的WPF概念和技術
5.DWM怎么樣paint窗口邊界和其他非客戶區
6.DWM遠程,顯著和訪問性
7.高DPI支持
8.公共的探索DWM API
9.rener和可視性的優化
10.DWM的內存使用
其他DWM相關的源信息
最技術的理解討論關于DWM的WEB是可能的,確實有其他地方那個有相關的信息和新聞:
1.Kam VedBrat維護的
log,常常給DWM內部的描述,特別是DWM的特性和Vista Aero。
2.microsoft.public.windows.developer.winfx.aero新組討論所有Aero相關的東西