Windows 7图形引擎修改了Vista引入的DWM工作方式,同时它还带来了新的API、D2D和DWrite、新的Direct3D 11并能更好的处理多路输出设备。
微软的桌面和图形小组高级架构师David Blythe在Channel 9的采访中解释了,什么是桌面窗口管理器(DWM)及其如何运作。应用程序不会直接在屏幕上绘图而是在内存的位图上进行,DWM负责把图像绘制到屏幕。这项技术的使用是为了在图形出现在屏幕之前对其应用各种变换。这就是动画任务栏缩略图如何创建的机理或者说桌面缩放是如何运作的。
Vista的DWM最大的问题是它的效率问题。直到Vista为止,应用程序使用GDI在屏幕上进行绘图,同时GDI使用硬件图形加速器来完成实际的工作。在Vista中,GDI在内存中进行绘图,DWM使用已绘制好的位图并用GPU把它绘制到屏幕上。这会导致有两份同样的图像。Windows 7中的改进意味着GDI将直接在图形内存中进行绘制,这将在GDI中再次引入最小的硬件加速层。这项改变会极大的降低内存的消耗和让图形呈现速度加快。
两项新的DirectX API是Direct2D和DirectWrite。根据MSDN的资料,Direct2D是:
硬件加速的即时模式2维图形API,它在2维几何图形、位图和文本方面有着较高的性能和质量。Direct2D API是设计与GDI、GDI+和Direct3D之间进行互操作的。
而DirectWrite则是:
DirectWrite提供高质量的文本呈现、具有独立分辨率的轮廓字体、完整的Unicode文本以及布局支持。在使用Direct2D的时候,DirectWrite是硬件加速的。
Windows 7带的Direct3D 11是D3D10的超集,它还可运行在D3D9和D3D10.x硬件之上。D3D11展现的一些新特性,如下所示:
分割 - 在运行时,在底层细节的多边形模型的基础上,提升直观的多边形数量
多线程呈现 - 利用多核CPU从不同的线程来呈现相同的Direct3D设备对象
计算着色器 - 公开着色器管道的非图形任务,例如,流式处理和物理加速(类似于NVIDIA的CUDA实现的效果),包括HLSLShader Model 5
在Vista中运行得不太顺畅的一项特性已经在Windows 7中得到解决,该特性可管理多个显示器和类似于放映机的显示设备。为了处理大量的潜在输出设备配置,GDI API进行了扩展,对于所需的输出配置可以简单地通过按Win + P键来进行选择。
【编辑推荐】