什么是WPF?
WPF:windows 呈现基础[Windows presentation Foundation]是一个用于windows平台的全新的图形显示系统。
什么是Windows图形?
标准的Windows应用程序依赖于Windows操作系统的如下两个部分来创建用户界面:
User32 : 为许多元素提供了类似的窗口外观,如:窗口。按钮,文本框等。
GDI/GDI+ : 为渲染简单形状,文本以及图像提供绘图支持,但是非常复杂(通常性能较差)
WPF的渲染级别
WPF访问显卡时,它会考虑许多因素,包括以下几方面:
1、显卡上的RAM的数量:图形硬件中的RAM数量决定了可用于合成图形的缓冲区的大小和数量。
2、像素着色器:像素着色器计算效果的图形处理功能。每个像素帧可能有数百万像素需要处理,具体取取决于所显示的图形的分辨率。
3、顶点着色器:顶点着色器是对对象的顶点数据执行数学运算的图形处理功能
4、多纹理支持:多纹理支持是指在对三维图形对象执行混合操作期间应用两个或更多个不同纹理的功能。多纹理支持的程度由图形硬件中的多纹理单元数决定。
根据这些细节,WPF会指定一个渲染级别值。
WPF提供了三个渲染级别,如下所示:
Rendering Tier[呈现层] 0:显卡将不提供任何硬件加速功能。所有图形功能都使用软件加速。DirectX版本级别低于9.0
Rendering Tier[呈现层] 1:显卡提供部分图形硬件加速功能。DirectX版本级别高于或等于9.0
Rendering Tier[呈现层] 2:显卡提供大多数图形硬件加速功能。DirectX版本级别高于或等于9.0
在某些情况下,可以通过程序来检查当前显卡的渲染级别,从而可以有选择性的为功能较差的显卡禁用一些图形特性。检查渲染级别需要使用System.Windows.Media.RenderCapability类的静态属性,为了通过Tier属性检查显卡的WPF渲染级别值,需要将它移动16位。
string strTier = string.Empty; int renderingTier = (RenderCapability.Tier >> 16); strTier = "此电脑渲染等级为:" + renderingTier.ToString(); MessageBox.Show(strTier);
下表显示呈现层 1 和呈现层 2 的图形硬件要求差异:
下面的功能是呈现层 1 和呈现层 2 的硬件加速功能: