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