DWM[windows視窗管理器]

DWM[windows視窗管理器]
更多義項 ▼ 收起列表 ▲

DWM是英文“Desktop Window Manager”的簡稱。是windows Vista及windows 7中的一個新組件。

Windows視窗管理器

桌面視窗管理器是windows Vista及windows 7中的一個新組件:Desktop Window Manager(DWM)。它建立在WPF核心圖形層組件基礎之上。DWM的桌面合成是建立在Composition引擎基礎之上的新特徵。它的出現幾乎改變了Vista中應用程式的螢幕象素顯示方式。啟用DWM後,提供的視覺效果有毛玻璃框架、3D視窗變換動畫、視窗翻轉和高解析度支持。其中最明顯的特徵有:系統列視窗的實時縮略圖;Alt-Tab和Win-Tab組合鍵所看到的效果。

桌面組合

dwm效果界面 dwm效果界面

到目前為止Vista最大的改變就是引進桌面組合。這成為一切都由DWM執行的基礎。桌面組合的主要特點 是:應用程式取得螢幕上像素的方法已經本質的改變。

在Windows的各個版本,直到XP,程式通過視窗來paint他們的可見區域,並且它們直接paint到buffer,然後顯示到顯示卡。有了Vista,程式通過視窗來paint它們的整個表面到一個離屏(offscreen)的表面(可能叫做點陣圖,緩衝區或紋理),並且DWM處理所有這些offscreen表面,並且組合在一起放到onscreen緩衝區。

一些例子:

訪問視窗

現在程式是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無知程式的地方,將其最終展現給用戶,提高高解析度監視器上的體驗。

記憶體的使用情況

因為每個視窗都需要在記憶體中有一個緩衝區來存儲視窗的上下文, 所以這個 dwm.exe 進程所占的記憶體大小是由打開視窗的個數控制的. 如果打開了大量的視窗, dwm.exe 則會占用更多的記憶體. 在大多數情況下, 相比占用相對較少的記憶體, 使用複合視窗管理器是值得的.

關閉 dwm

關掉 dwm.exe 的唯一方法是停止這個服務運行. 在控制臺或者開始選單中打開"服務", 然後找到列表里的 "Desktop Window Manager Session Manager", 然後點擊"停止"按鈕, 注意在點了"停止"按鈕後你會切換到系統的基本主題(Basic Theme) .

可以以管理員模式運行控制台然後使用下面的命令:

Stop Service net stop uxsms

Start Service net start uxsms

Disable Service sc config uxsms start= disabled

Enable Service sc config uxsms start= auto

將來可能的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.winfxaero新組討論所有Aero相關的東西

X11視窗管理器

dwm - dynamic window manager

dwm是為X11編寫的視窗管理器,是採用MIT許可證的開源軟體、體現極簡風格的視窗管理器,其開發的原則是:代碼不超過2000行,所有配置選項均包含在一個頭檔案中。

與傳統視窗管理器的不同點在於,dwm儘量使新視窗不遮擋老視窗的內容,避免過多的滑鼠拖動視窗、滑鼠改變視窗大小等操作。

極簡風格是電腦軟體開發的一個廣為人知的思想。它對dwm影響很大,同時對其他視窗管理器(比如xmonad、awesome)影響也很大。dwm在外表上酷似wmii,但本質上更簡潔。dwm完全使用C語言編寫,為了保持簡潔,除了修改原始碼外,沒有配置檔案可供修改。它的原始碼壓縮檔僅60K,能在一秒之內編譯生成執行檔dwm。

特點

1,支持多工作區;

2,可以使用滑鼠來改變視窗大小;

3,通過改變頂欄(默認)的狀態來選擇平鋪還是普通視窗擺放模式;

4,頂欄支持顯示視窗名字(默認視窗無標題欄),頂欄通常作為提示欄顯示系統信息、歌詞等;

5,焦點跟隨滑鼠

截圖

dwm下虛擬終端、GIMP以及虛擬終端下VIM截圖

DWM[windows視窗管理器] DWM[windows視窗管理器]
DWM[windows視窗管理器] DWM[windows視窗管理器]
DWM[windows視窗管理器] DWM[windows視窗管理器]

分支

xmonad是Haskell 對dwm的重寫擴展。

awesome是對dwm的擴展,擴展包括矢量字型支持、帶配置檔案、Lua腳本支持、可變主題、多視窗擺放模式。

echinus是對dwm的擴展,擴展包括矢量字型支持、是EWMH的子集、焦點跟隨滑鼠點擊、帶配置檔案、多視窗擺放模式。

scrotwm使用了部分dwm的代碼,添加配置檔案並可以在不丟失原先狀態下重啟以套用配置檔案。

相關詞條

熱門詞條

聯絡我們