WPF 设置纯软件渲染
最近看到有小伙伴说 WPF 使用硬件渲染,如何让 WPF 不使用硬件渲染,因为他觉得性能太好了。万一这个版本发布了,产品经理说下个版本要提升性能就不好了。于是就找到一个快速的方法,让程序不使用硬件渲染这样下个版本要优化就让程序使用硬件渲染
设置 WPF 使用软件渲染的方法是在 .net framework 3.5 之后才可以的。使用方法很简单,在 Loaded 之后,添加下面代码
HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;
HwndTarget hwndTarget = hwndSource.CompositionTarget;
hwndTarget.RenderMode = RenderMode.SoftwareOnly;
默认的 RenderMode 是 默认,也就是如果判断有硬件就在硬件渲染,如果没有就在 CPU 渲染。
如果设置 SoftwareOnly 就不在硬件渲染。
除了想降低性能,估计没有人会设置这个。
上面的方法是开启窗口级的软渲染,如果想要在进程级设置开启软渲染,请使用这个代码
RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;
如果想要在整个设备运行 WPF 程序都使用软渲染,那么可以通过修改注册表的方法
在 HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics
里面添加一个项,这个项是 dword
命名是 DisableHWAcceleration
使用默认值 0 就可以
那么如何判断当前的软件是使用软渲染的?
通过 WPF Performance Suite 运行之后附加到打开的进程调试,勾选 Draw software renderingwith purple tint 观察原有进程是否被一个诡异的颜色放在上面,如果是那么就是开启软渲染了
在Performance Profiling Tools for WPF 的 Draw software renderingwith purple tint 就是使用高亮的矩形覆盖在使用软渲染的范围,如果整个进程都是使用软渲染,那么整个进程都会被高亮
注意,除了设置使用软渲染之外打开高亮矩形可能会显示在使用 bitmap effects 的元素上或通过RenderTargetBitmap渲染的内容等使用软渲染的元素
现在微软已经不开放Performance Profiling Tools for WPF下载,请点击这个链接下载
最近在做渲染优化,更多博客请看 渲染相关
WPF 渲染级别
WPF 使用 Direct2D1 画图入门
Video Rendering Issues for WPF Windows - Rick Strahl’s Web Log
Enable Software Rendering in WPF programmatically
Software Rendering Usage in WPF – WPF Performance and .NET Framework Client Profile
我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新
如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
WPF 设置纯软件渲染相关推荐
- 3dmax软件渲染模型导出JPG格式图片的方法
3dmax软件渲染模型导出JPG格式图片的方法.感兴趣的小伙伴们快和小编一起看看3dmax软件渲染模型怎么保存为JPG格式的吧! 3dmax软件渲染模型导出JPG格式图片的方法如下: 步骤一.首先在电 ...
- maya对象属性_超详细!maya软件渲染属性设置说明(一)
了解了通用渲染设置选项命令之后,需要分别对Software Render(软件渲染).Hardware Render(硬件渲染).Hardware 2.0 Render(硬件2.0渲染)和Vector ...
- WPF 使用 SharpDx 异步渲染
本文告诉大家如何通过 SharpDx 进行异步渲染,但是因为在 WPF 是需要使用 D3DImage 画出来,所以渲染只是画出图片,最后的显示还是需要 WPF 在他自己的主线程渲染 本文是一个系列,希 ...
- output怎么用_如何用 C++ 写一个可编程软件渲染器?
今天你想用最新的 D3D12 画一个三角形,少说也要上千行代码了,对于初学者来讲,这个门槛是非常高的,太多干扰了,而一千多行代码,已经足够你重头实现一个简易版 D3D 了,为什么不呢?比起从图形 AP ...
- 【CCS仿真系列教程】手把手教你纯软件仿真实现音频滤波
[CCS仿真系列教程]手把手教你纯软件仿真实现音频滤波 事先说明 示例项目下载 示例使用说明 首先用Matlab生成加了噪声的音频 将我的项目弄你的CCS的WorkSpace中 把Matlab生成后的 ...
- WPF 设置属性“System.Windows.FrameworkElement.Style”时引发了异常
开发工具与关键技术:Microsoft Visual Studio 2017.WPF 现象: 用WPF开发的软件在个别电脑系统下安装后无法启动,报异常:设置属性"System.Windows ...
- [软件渲染器入门]六-应用纹理、背面剔除以及一些WebGL相关
译者前言: 本文译自MSDN,原作者为David Rousset,文章中如果有我的额外说明,我会加上[译者注:]. 正文开始: 下面是本系列的最后一个章节了.我们将看到如何从Blender中导出贴图和 ...
- TinyRenderer(1):500行代码实现软件渲染器
Lsson 0 从头开始 这是一个微型软件光栅化程序,如果您正在寻找一个微型软件光线跟踪器,则可以在此处找到它. 我的源代码无关紧要.阅读本文并实现自己的渲染器.只有当您经历所有细微的细节时,您才能了 ...
- 500行C++代码实现软件渲染器 - 0.引言
直接阅读源代码并不容易理解,建议阅读维基之后再来实现你自己的渲染器.只有当你弄懂了所有的技术细节之后,你才会知道渲染器如何工作.我很乐意通过邮件得到读者的反馈.如果你有任何问题,欢迎与我联系(dmit ...
最新文章
- python 提交表单登录不成功_Python http requests模拟登录与提交表单的实现问题
- mybatis 调用 oracle 存储过程 select into 无记录时NO_DATA_FOUND异常处理分析
- 机器学习笔记(二)逻辑回归和正则化
- 算法提高课-搜索-Flood fill算法-AcWing 1097. 池塘计数:flood fill、bfs
- 树莓派AI视觉云台——6、Linux常用命令及vim编辑器的使用
- ios越狱系统UIGestureRecognizer事件截获问题
- Run-time system与虚拟机
- 红包指定分配金额php,php仿微信红包分配算法的实现方法_PHP
- 【Spring】模块
- LOW_VALUE、HIGH_VALUE、ENDPOINT_VALUE转换--UTL_RAW、DBMS_STATS.CONVERT_RAW_VALUE
- 6016.Linux shell脚本编程规范(第1版)
- python 画三角形matli_Python实现PS滤镜特效之扇形变换效果示例
- 黑盒测试方法之错误推测法概述
- 前端剑法第三式————碎岩
- 从numpy掩码到pytorch掩码
- 【Linux】Linux私有组,主要组和附加组
- 阿里云建站的基本流程
- 《奋斗》--值得每个正在拼搏的年轻人看看!
- 花式吊打源码中 Android.mk 集锦
- (转)关于用户管理模块