操作系统走向3D桌面的深度体验
DWM将Aero界面的各种元素组合在一起,因此也就需要满足一定要求的显卡。在以前版本Windows的GUI中,应用程序通常将自己的界面直接描绘到单屏幕缓冲区(single screen buffer),利用程序调用标准图形子系统。如果用户移动了一个窗口,操作系统就会通知对应的应用程序,并要求程序重绘自己的窗口。每个被移动操作影响的应用程序都需要重绘自己的窗口。然而DWM通过更灵活,更有效率的方法处理这一过程。
因为不再需要将自己的输出内容绘制到单屏幕缓冲区,因此当应用程序发出调用让子系统绘制它的界面时,输出内容会自动发送给一系列专用缓冲区(private buffers)之一,每个程序都有一个这样的专用缓冲区。然后DWM把这些需要绘制的内容组合起来,并在屏幕上显示出用户最终看到的内容。
如果需要在屏幕上移动应用程序的窗口,只需要DWM重绘该程序专用缓冲区中的内容,然后发送到显卡缓存中就可以了,不再需要每个被影响到的程序都重绘自己的界面,而且只要系统当前不是很繁忙,移动窗口的时候通常都不会在窗口四周留下难看的拖影。因为DWM控制了相对独立的视频缓冲区,因此还可以生成以往应用程序自己直接生成窗口时难于实现的一些特殊效果。
例如,DWM可以轻松地给界面应用透明效果。让多个具有透明效果的窗口堆叠在桌面上,原本需要每个应用程序单独计算并生成对应窗口的透明效果,但有了DWM后,这个计算只要进行一次,然后根据专用缓冲区的全部内容来生成即可。
这种更加高效的方式能够让处理器用于产生其他更高质量的效果。例如,Vista中窗口上表现出来的Aero Glass效果就能表现出一种很明显的半透明质感。该功能可以表现出被表层像素覆盖的内容,就好像光线透过前端的玻璃照射到后面的窗口一样。很多层窗口重叠在一起之后还能表现出柔化的效果,这让整个屏幕更真实,更立体。
因为这时候应用程序都会将自己的图形输出内容发送到专用缓冲区,因此DWM就可以通过多种方式转换并使用这些数据。例如,DWM可以翻转窗口,或者重设窗口大小,甚至还可以用立体的方式堆叠显示所有窗口。为每个应用程序使用各自独立的视频缓冲区的另外一个好处是DWM可以缩放缓冲区的内容,而这一特性也具有很多功能。
例如,高分辨率显示器用户有时候会觉得,因为屏幕的分辨率太大,所以应用程序的界面看起来有些小。DWM则可以自动缩放窗口以及窗口中内容的大小,以符合屏幕的面积,而不是像以前那样仅仅增大屏幕上元素之间的间距。
缩放的另一个用途是,为每一个运行的程序在任务栏上显示一个缩略图。这样用户就可以直接看到每个窗口中当前的内容,而不用每一次先把程序的窗口最大化。缩略图还可以实时更新,因为应用程序会实时更新自己的缓冲区,例如Windows Media Player虽然可以最小化,但是依然在播放视频,而这时我们就可以通过任务栏的缩略图按钮看到播放的视频内容。
Windows Vista中DirectX的版本也升级到了10,这也是使用高性能显卡的另一个原因(关于DirectX 10的详细信息,请参考《个人电脑》2007年5期174页)。DirectX不再评估你的显卡性能,然后根据评估结果表现出相应的功能。相反,它会直接假设你的显卡可以支持自己的全部特性。
DirectX 10的一项有用功能是硬件虚拟化(hardware virtualization)技术的应用。这个功能的使用使得不同应用程序使用显卡的时候都感觉到只有自己在使用这块显卡。这意味着,一些程序,例如流媒体视频程序“认为”自己可以对显卡进行独占访问,以满足自己的需要。虽然Windows Vista有如此多的创新功能,对于大部分人来说,Aero只是一批研究项目之一,而这个项目也已经投入了实际应用,并承诺可以给我们使用计算机的方式带来一场革命。
[an error occurred while processing this directive]
因为不再需要将自己的输出内容绘制到单屏幕缓冲区,因此当应用程序发出调用让子系统绘制它的界面时,输出内容会自动发送给一系列专用缓冲区(private buffers)之一,每个程序都有一个这样的专用缓冲区。然后DWM把这些需要绘制的内容组合起来,并在屏幕上显示出用户最终看到的内容。
如果需要在屏幕上移动应用程序的窗口,只需要DWM重绘该程序专用缓冲区中的内容,然后发送到显卡缓存中就可以了,不再需要每个被影响到的程序都重绘自己的界面,而且只要系统当前不是很繁忙,移动窗口的时候通常都不会在窗口四周留下难看的拖影。因为DWM控制了相对独立的视频缓冲区,因此还可以生成以往应用程序自己直接生成窗口时难于实现的一些特殊效果。
例如,DWM可以轻松地给界面应用透明效果。让多个具有透明效果的窗口堆叠在桌面上,原本需要每个应用程序单独计算并生成对应窗口的透明效果,但有了DWM后,这个计算只要进行一次,然后根据专用缓冲区的全部内容来生成即可。
这种更加高效的方式能够让处理器用于产生其他更高质量的效果。例如,Vista中窗口上表现出来的Aero Glass效果就能表现出一种很明显的半透明质感。该功能可以表现出被表层像素覆盖的内容,就好像光线透过前端的玻璃照射到后面的窗口一样。很多层窗口重叠在一起之后还能表现出柔化的效果,这让整个屏幕更真实,更立体。
因为这时候应用程序都会将自己的图形输出内容发送到专用缓冲区,因此DWM就可以通过多种方式转换并使用这些数据。例如,DWM可以翻转窗口,或者重设窗口大小,甚至还可以用立体的方式堆叠显示所有窗口。为每个应用程序使用各自独立的视频缓冲区的另外一个好处是DWM可以缩放缓冲区的内容,而这一特性也具有很多功能。
例如,高分辨率显示器用户有时候会觉得,因为屏幕的分辨率太大,所以应用程序的界面看起来有些小。DWM则可以自动缩放窗口以及窗口中内容的大小,以符合屏幕的面积,而不是像以前那样仅仅增大屏幕上元素之间的间距。
缩放的另一个用途是,为每一个运行的程序在任务栏上显示一个缩略图。这样用户就可以直接看到每个窗口中当前的内容,而不用每一次先把程序的窗口最大化。缩略图还可以实时更新,因为应用程序会实时更新自己的缓冲区,例如Windows Media Player虽然可以最小化,但是依然在播放视频,而这时我们就可以通过任务栏的缩略图按钮看到播放的视频内容。
Windows Vista中DirectX的版本也升级到了10,这也是使用高性能显卡的另一个原因(关于DirectX 10的详细信息,请参考《个人电脑》2007年5期174页)。DirectX不再评估你的显卡性能,然后根据评估结果表现出相应的功能。相反,它会直接假设你的显卡可以支持自己的全部特性。
DirectX 10的一项有用功能是硬件虚拟化(hardware virtualization)技术的应用。这个功能的使用使得不同应用程序使用显卡的时候都感觉到只有自己在使用这块显卡。这意味着,一些程序,例如流媒体视频程序“认为”自己可以对显卡进行独占访问,以满足自己的需要。虽然Windows Vista有如此多的创新功能,对于大部分人来说,Aero只是一批研究项目之一,而这个项目也已经投入了实际应用,并承诺可以给我们使用计算机的方式带来一场革命。



重点专题