WPF 渲染级别 (Tier)
在WPF中,显卡的功能相差很大。当WPF评估显卡时,它会考虑许多因素,包括显卡上的RAM数量、对像素着色器(piexl shader)的支持(计算每个像素效果的内置程序,如透明效果),以及对顶点着色器(vertex shader)的支持(计算三角形顶点数值的内置程序,如3D对象的着色)。根据这些细节,WPF会指定渲染级别值。
WPF 能够识别三个渲染级别,如下所示:
1. Rendering Tier0: 显卡不提供任何硬件加速功能。该级别和 7.0 或更低版本的DirectX 对应。
2. Rendering Tier1:显卡可以提供部分硬件加速功能。该级别和 7.0以上9.0以下 版本的DirectX相对应。
3. Rendering Tier2:所有特性将由硬件加速。该级别和 DirectX 9.0 及以上版本相对应。
某些情况下,可能希望通过程序检查当前显卡的渲染级别,从而可以酌情为功能较差的显卡禁用一些图形特性。为此,需要使用 System.Windows.Media.RenderCapability 类的 Tier 静态属性。但是还需要一个技巧。为从 Tier 属性中提取签卡的 WPF 渲染级别值,需要将它移动16为,如下所示:
int renderingTier = (RenderCapability.Tier>>); if(renderingTier == )
{ ... }
else if(renderingTier == )
{ ... }
这种设计允许在以后进行扩展。在WPF的未来版本中,可使用Tier属性的其他位来保存对其他特性支持情况的信息,从而创建子渲染级别。
有关 tier1 和 tier2 为哪些WPF特性提供了硬件加速的详情,以及常见的 tier1 和 tier2 显卡列表,请访问:http://msdn.microsoft.com/en-us/library/ms742196.aspx
参考:http://www.wxzzz.com/?id=123
WPF 渲染级别 (Tier)的更多相关文章
- WPF 渲染级别
原文:WPF 渲染级别 很少人会知道 WPF 也可以知道当前的显卡能支持的渲染级别. 根据显卡的不同,包括显存.纹理等的支持是否打到要求,指定渲染级别. 使用 System.Windows.Media ...
- WPF 渲染原理
原文:WPF 渲染原理 在 WPF 最主要的就是渲染,因为 WPF 是一个界面框架.想用一篇博客就能告诉大家完整的 WPF 渲染原理是不可能的.本文告诉大家 WPF 从开发者告诉如何画图像到在屏幕显示 ...
- 2018-7-24-WPF-渲染级别
title author date CreateTime categories WPF 渲染级别 lindexi 2018-07-24 18:46:27 +0800 2018-04-20 16:26: ...
- WPF 设置纯软件渲染
最近看到有小伙伴说 WPF 使用硬件渲染,如何让 WPF 不使用硬件渲染,因为他觉得性能太好了.万一这个版本发布了,产品经理说下个版本要提升性能就不好了.于是就找到一个快速的方法,让程序不使用硬件渲染 ...
- dotnet 从入门到放弃的 500 篇文章合集
本文是记录我从入门到放弃写的博客 博客包括 C#.WPF.UWP.dotnet core .git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到 ...
- 2018-8-10-dotnet-从入门到放弃的-500-篇文章合集
title author date CreateTime categories dotnet 从入门到放弃的 500 篇文章合集 lindexi 2018-08-10 19:16:52 +0800 2 ...
- WPF 使用 SharpDx 异步渲染
本文告诉大家如何通过 SharpDx 进行异步渲染,但是因为在 WPF 是需要使用 D3DImage 画出来,所以渲染只是画出图片,最后的显示还是需要 WPF 在他自己的主线程渲染 本文是一个系列,希 ...
- WPF教程十四:了解元素的渲染OnRender()如何使用
上一篇分析了WPF元素中布局系统的MeasureOverride()和ArrangeOverride()方法.本节将进一步深入分析和研究元素如何渲染它们自身. 大多数WPF元素通过组合方式创建可视化外 ...
- dotnet 读 WPF 源代码笔记 渲染收集是如何触发
在 WPF 里面,渲染可以从架构上划分为两层.上层是 WPF 框架的 OnRender 之类的函数,作用是收集应用程序渲染的命令.上层将收集到的应用程序绘制渲染的命令传给下层,下层是 WPF 的 GF ...
随机推荐
- 浅析Linux Native AIO的实现
前段时间在自研的基于iSCSI的SAN 上跑mysql,CPU的iowait很大,后面改用Native AIO,有了非常大的改观.这里简单总结一下Native AIO的实现.对于以IO为最大瓶颈的数据 ...
- 【LeetCode】162. Find Peak Element (3 solutions)
Find Peak Element A peak element is an element that is greater than its neighbors. Given an input ar ...
- python 操作redis之——有序集合(sorted set) (七)
#coding:utf8 import redis r =redis.Redis(host=") 1.Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中.如果某个成员已经是有序 ...
- mybatis 映射器
1 映射器 Mapper 是由java接口和 XML 文件共同组成.它的作用如下 1)定义参数类型 2)描述缓存 3)描述 SQL 语句 4)定义查询结果和POJO的映射关系 2 SqlSession ...
- 如何实现php异步处理
在实际生成环境下,php作为后台的接口服务器已经很常见,php当然具有它能作为后台服务器的优势之处,但是,在处理一些客户端并不关心的结果时,就显出它的弊端了---没有异步执行的机制.就比如我们想做一些 ...
- CentOS 安装 升级Firefox
把旧版本的firefox卸掉: # yum erase firefox 然后安装新版本: # yum firefox
- HttpClient设置编码类型
笔者引用的是commons-httpclient这个jar包httpclient 可是通过get/post方式获取带有中文页面的html文件时.返回的是乱码,在网上找了非常久.最终找到一个合适的: H ...
- atitit.attilax.com产品 软件项目通用框架类库总结
atitit.attilax.com产品页面 1. 微信公众号后台服务系统 1 2. 视频图文发布与点播系统 1 3. 图片验证码自动识别 2 4. 手机短信验证码自动识别 2 5. 爬虫,数据采集, ...
- nginx在用户使用ie的使用重定向到/nginx-MSIE目录下
[root@web01 ]# cat /app/server/nginx/conf/rewrite/default.conf #rewrite ^/index\.html /index.php las ...
- onResume
比如做一个音乐播放程序,在播放过程中,突然有电话打进来了,这时系统自动调出电话,而你的音乐播放程序置于后台,触发了onPause方法.当你电话结束后,关闭电话,又自动回到音乐播放程序,此时,触发onR ...