这是我在一年前写的一篇文章,一年前首发太平洋电脑网论坛(当时并没有打算在这个Blog上发),为了填一下这个空空的优快云 Blog,最后还是决定发到这里来了(做了点修正)。本文主要以一个概要的形式让大家对Aero、DWM有个较清楚的了解,面向大众,所以内容并不深入,想看深入的还是去看其他人写的吧。如有错误之处,欢迎指正。
Aero ,又叫 Aero Glass ,是从 Windows Vista 开始引入的毛玻璃风格的界面,微软全新推出的操作系统 Windows 7 也继承了这种界面设计。它的效果确实让人眼前一亮,然而很多人却认为这个美轮美奂的界面是华而不实的花瓶。那么, Aero 界面真的是华而不实吗?非也!
拥抱 Windows 7—— 解读 Aero
微软 Windows Vista 系统由于生不逢时而惹来了很多不好的名声,很多人更是人云亦云,并仅从其表面主观判断这个系统的好坏,因而出现了很多持有“ Aero 无用”或“ Aero 华而不实”之类的观点的人。
对于全新推出的 Windows 7 操作系统,由于有 Vista 打下的基础(硬件驱动以及软件的成熟),加上微软在 Win7 上付出的努力,这个新一代的操作系统获得了不错的反响。大家都逐渐愿意去关注她,拥抱她。正好给了我一个机会为 Aero 平反。
本文将通过简述 Aero 的基本工作原理来讲述 Aero 除了给我们带来华丽的界面之外还给我们带来什么样的好处,并让大家对 Windows 7 有更多的了解。评价一样事物,不应只看其表面,更应该看清楚它的“心”。
传统桌面渲染模式的缺陷
下图的现象相信你非常熟悉:
图 1
为什么会这样?要解析清楚这个,我们就需要了解一下传统的 Windows 桌面渲染原理。
在 Windows Vista 之前, Windows 只有一个桌面缓存,并且所有的程序窗口都直接在那个缓存上进行渲染。
这样说或许比较抽象,用个比较形象的说法就是,你所看到的整个屏幕上的画面就相当于一张画在一张纸上的画。对,就是只有一张纸。
这样造成的结果是什么呢?我们再来看。
图 2 有 2 个计算器窗口,其中一个被另一个覆盖了一部分窗口内容。而被覆盖的那个计算器的窗口内容,实际上就只有看得见的那部分(参见图 3 )。
图 2
图 3
这是因为所有窗口都只在一个缓存上直接渲染(绘图)的关系。试想一下,一张纸上的内容,除了你所能够看到的那些部分之外,还会有什么?
所以当我们移动上面的那个计算器窗口的时候,下面那个计算器的窗口就要重绘,整个画面都需要重绘。
而当我们在另一个应用程序上快速来回移动窗口时,由于下面的窗口更新速度太慢,没能及时重绘窗口,从而形成了图 1 的那种撕裂现象。与此同时, CPU 占用率也会变得很高。
并且最终的桌面渲染是由 GDI 和 GDI+ 图形引擎来渲染的,在高分辨率的情况下,渲染出来的画面也不够细腻。
传统的桌面渲染由于存在撕裂现象 、 画面不流畅 、 CPU 占用率高和画面粗糙这些问题,显然不能适应未来的发展,而且所有的这些缺陷在高 DPI 的显示器下会变得更明显。
Aero 的真身 —— 桌面窗口管理器( DWM )
桌面窗口管理器与桌面合成
桌面窗口管理器( Desktop Window Manager , DWM )是从 Vista 开始引入的一个新组件,它使用全新的技术来渲染桌面 —— 桌面合成( Desktop Composition )。
Aero 界面是基于 DWM 的。开启 DWM 后,所有窗口都有自己独立的缓存来进行渲染,然后由 DWM 进行管理并获取所有缓存的内容,再通过桌面合成组合出最终的桌面。
图 4 桌面合成