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 ...
随机推荐
- Android高效异步图片加载框架
概述 Android高效异步图片加载框架:一个高效的异步加载显示的图片加载框架,同时具备图片压缩,缓存机制等特性. 详细 代码下载:http://www.demodashi.com/demo/1214 ...
- ubuntu 命令行下查看网页 w3m
w3m localhost/index.php
- C#中Out和Ref參数修饰符
在编程过程中对于函数之间的參数的传递一般分为两种:传值和传地址. 以下为大家分析一下. 传值 比方你又一份文档,假设採用传值的话.相当于我复制了一份,因此我对我这份文档的改动都不会影响到你的那份.假设 ...
- store.js 跨浏览器的localStorage
store.js 跨浏览器的localStorage 我们总是想要储存一些数据在浏览器端,却对复杂的兼容性头疼,store.js很好的解决了这些问题. store.js ☍ 使用它相当简单: // 储 ...
- node定时任务——node-schedule模块使用说明
在实际开发项目中,会遇到很多定时任务的工作.比如:定时导出某些数据.定时发送消息或邮件给用户.定时备份什么类型的文件等等. 一般可以写个定时器,来完成相应的需求,在node.js中自已实现也非常容易, ...
- atitit.高性能遍历 文本文件行 attilax总结
atitit.高性能遍历 文本文件行 attilax总结 文件读写有以下几种常用的方法 1 通常io读取2.5s 1 nio读取或许越高的.. 2 NIO通常采用Reactor模式,AIO通常采用Pr ...
- XCode5中新建工程后强制使用了ARC,如何去掉?
打开你的工程,点击目录的工程文件,最顶端蓝色的,然后选择project下你的工程,还是蓝色那项,然后build Settings,然后往下拉,在Apple LLVM 5.0 - Language - ...
- iOS_5_汤姆猫
终于效果图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5lbnQ=/font/5a6L5L2T/fontsize/400/fill ...
- Memcached安装以及PHP的调用
Memcached安装以及PHP的调用 [南京·10月17日]OSC源创会开始报名:Swift.大型移动项目构架分享 » 一:安装libevent 由于memcached安装时,需要使用libeven ...
- jquery衬衣产品内容详情页
html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...