WPF 底层渲染
文章平均质量分 92
WPF 渲染原理
提高渲染性能
lindexi_gd
我是微软Windows应用开发方向的最具价值专家,欢迎访问我博客blog.lindexi.com里面有大量WPF和UWP博客
展开
-
dotnet 读 WPF 源代码笔记 渲染收集是如何触发
在 WPF 里面,渲染可以从架构上划分为两层。上层是 WPF 框架的 OnRender 之类的函数,作用是收集应用程序渲染的命令。上层将收集到的应用程序绘制渲染的命令传给下层,下层是 WPF 的 GFX 层,作用是根据收到的渲染的命令绘制出界面。本文所聊的是渲染上层部分,在 WPF 框架是如何做到界面刷新渲染,包括此调用的顺序以及框架逻辑阅读本文之前,我期望读者有一定的 WPF 渲染基础...原创 2021-09-13 00:38:00 · 1669 阅读 · 0 评论 -
WPF 更改 DrawingVisual 的 RenderOpen 用到的对象的内容将持续影响渲染效果
在 WPF 里面,可以通过 DrawingVisual 来进行使用底层的绘制方法,此方法需要调用 DrawingVisual 的 RenderOpen 拿到 DrawingContext 类型的对象,接着调用此对象的方法来进行界面绘制。在绘制完成之后,如果依然保存绘制过程的对象,例如 Transform 对象,那当界面再次刷新时,如果更改此对象的属性,将会影响渲染原创 2021-08-05 00:52:20 · 709 阅读 · 0 评论 -
dotnet 在 Windows 系统上使用 stakx 的 WIC 库
在 Windows 系统上,有一个很重要的概念是 Windows Imaging Component 也就是 WIC 层,这是专门用来处理多媒体相关的系统组件,特别是用来处理图片相关,包括编码和解码和处理图片。默认在 WPF 中就可以使用封装好的 WIC 层,也就是说最好的 WIC 库就是 WPF 框架了。但是如果在 WPF 之外呢,我有一点特别的需求,我想要绕过 WPF 框架,通过纯控制台的方式...原创 2021-03-29 00:31:36 · 386 阅读 · 0 评论 -
C# 从零开始写 SharpDx 应用 禁止 Alt + Enter 进入全屏
有小伙伴给我报了一个坑,那就是使用我的博客写的方法,在按下 ALT+ENTER 键时,将会让屏幕黑屏。其实原因就是默认的 DX 关联了 ALT+ENTER 快捷键,进入了全屏。本文来告诉大家如何解决这里使用 Alt + Enter 键进入全屏,其实进入的是独占的全屏,和我上次告诉大家的使用以下几篇博客的方法不同C# 纯控制台创建一个全屏窗口WPF 全屏透明窗口但是和 Sharp...原创 2021-01-12 01:26:45 · 644 阅读 · 0 评论 -
C# 从零开始写 SharpDx 应用 从 D3DDevice 获取 DXGIDevice 方法
本文将告诉大家在拿到了 D3D11 的 Device 也就是 D3DDevice 之后,如何去获取 DXGI.Device 以及 DXGI.Factory 的方法本文是 SharpDX 系列博客,更多博客请点击SharpDX 系列在 C# 从零开始写 SharpDx 应用 初始化dx修改颜色 这篇博客完成了基础的初始化而接下来如何根据之前的代码,也就是如何根据上一篇博客创建的 D3D...原创 2021-01-12 01:26:45 · 1700 阅读 · 0 评论 -
C# 从零开始写 SharpDx 应用 聊聊功能等级
本文将和大家聊聊 DirectX 里面的功能等级在 SharpDx 的使用方法本文是 SharpDX 系列博客,更多博客请点击SharpDX 系列在C# 控制台创建 Sharpdx 窗口已经创建了一个窗口,现在需要在这个窗口初始化。因为是从零开始写,所以需要非常多细节,我觉得一篇文章是很难全部告诉大家,所以分为了系列的文章。从零开始写有利于大家了解一个渲染框架是如何做出来,并且从底层优...原创 2021-01-12 01:26:45 · 1149 阅读 · 2 评论 -
WPF 自己封装 Skia 差量绘制控件
使用 Skia 能做到在多个不同的平台使用相同的一套 API 绘制出相同界面效果的图片,可以将图片绘制到应用程序的渲染显示里面。在 WPF 中最稳的方法就是通过 WriteableBitmap 作为承载绘制。本文告诉大家如何封装一个支持差量绘制的控件,默认的绘制方法都是每次都是不保存上次绘制的内容,而且清空画布,重新绘制。这样的绘制方法显然效率不够高在上一篇博客里面告诉大家如何在 WPF ...原创 2020-09-08 00:52:41 · 560 阅读 · 0 评论 -
WPF SharpDx 性能优化方法
本文记录一些通用的 SharpDx 的性能优化方法本文属于 SharpDx 系列 博客,建议从头开始读不要监听 ContentRendered 事件监听了 Window 的 ContentRendered 事件将会降低整个 WPF 的渲染性能关注硬件渲染注意是否在 WPF 开启了硬件渲染,详细请看 WPF 渲染级别 和 WPF 设置纯软件渲染执行业务代码的耗时在执行 Sharp...原创 2020-08-01 00:31:27 · 975 阅读 · 0 评论 -
WPF 最简逻辑实现多指顺滑的笔迹书写
只需不到 150 行代码就能实现一个支持多指顺滑的笔迹书写的应用。当然,这个应用除了笔迹书写外,没有其他任何功能。本文将不会使用 InkCanvas 而是使用更底的方法,通过 Stroke 进行绘制原创 2020-09-26 08:48:09 · 1250 阅读 · 2 评论 -
WPF 使用 SharpDx 异步渲染
本文告诉大家如何通过 SharpDx 进行异步渲染,但是因为在 WPF 是需要使用 D3DImage 画出来,所以渲染只是画出图片,最后的显示还是需要 WPF 在他自己的主线程渲染原创 2019-06-29 09:27:31 · 2219 阅读 · 0 评论 -
WPF 使用 Composition API 做高性能渲染
在 WPF 中很多小伙伴都会遇到渲染性能的问题,虽然 WPF 的渲染可以甩浏览器渲染几条街,但是还是支持不了游戏级的渲染。在 WPF 使用的 DX 只是优化等级为 9 和 DX 9 差不多的性能,微软在很多开发者的提议开放了现代渲染方法 Composition API 这是 UI 应用的里程碑的技术原创 2019-04-29 12:25:46 · 2216 阅读 · 0 评论 -
WPF 使用 SharpDX 在 D3DImage 显示
本文告诉大家如何使用 SharpDX 在 D3DImage 显示。在上一篇WPF 使用 SharpDX只是使用窗口,也就是无法使用其它的 WPF 控件。所以这一篇就来告诉大家如何使用 WPF 控件和使用 SharpDX原创 2018-11-19 15:41:12 · 7295 阅读 · 2 评论 -
C# 从零开始写 SharpDx 应用 画三角
在当前的画面都是使用三角形,在开始就告诉大家如何画三角,本文告诉大家如何用像素著色器画原创 2018-09-30 18:31:57 · 7797 阅读 · 2 评论 -
C# 从零开始写 SharpDx 应用 初始化dx修改颜色
本文来告诉大家如何在上一篇博客创建的窗口里面使用 Sharpdx 初始化,然后设置窗口颜色原创 2018-08-27 16:26:32 · 5915 阅读 · 0 评论 -
C# 从零开始写 SharpDx 应用 控制台创建 Sharpdx 窗口
本文告诉大家如何在控制台使用 SharpDx 创建窗口,这是一个底层的博客,我会用很多博客告诉大家如何从控制台创建一个高性能渲染程序原创 2018-06-29 16:31:00 · 5599 阅读 · 10 评论 -
WPF 使用 SharpDX
本文告诉大家如何在 WPF 使用 SharpDX ,只是入门原创 2018-08-27 16:30:12 · 4595 阅读 · 9 评论 -
WPF 使用 Direct2D1 画图 绘制基本图形
本文来告诉大家如何在 Direct2D1 绘制基本图形,包括线段、矩形、椭圆原创 2018-04-19 16:43:07 · 4810 阅读 · 0 评论 -
WPF 使用 Direct2D1 画图入门
本文来告诉大家如何在 WPF 使用 D2D 画图原创 2018-05-21 08:56:52 · 5046 阅读 · 0 评论 -
C# 从零开始写 SharpDx 应用 笔刷
本文告诉大家如何在 SharpDx 里面使用笔刷,包括纯色笔刷、渐变笔刷和图片笔刷原创 2019-08-30 08:51:35 · 6286 阅读 · 5 评论