本文将告诉大家如何使用 Vortice 底层库从零开始 , 从一个控制台项目 , 开始搭建一个最简单的使用 Direct2D1 的 DirectX 应用 。本文属于入门级博客 , 期望本文能让大家了解 Vortice 底层库是可以如何调用 DirectX 的功能 , 以及了解 DirectX 中 , 特别是 D2D 部分的初始化逻辑
在开始聊 Vortice 之前 , 必须要先聊聊 SharpDx 库 。众所周知 , 现在 SharpDx 已不维护 , 尽管 SharpDx 的不维护对咱开发影响很小 , 除非需要用到这几年新加的功能 , 否则使用不维护的 SharpDx 的问题也不大 。而 Vortice 是作为 SharpDx 的一个代替的存在 , 是从 SharpDx 的基础上 , 继续开发的一个项目 。使用 Vortice 底层库 , 能让 C# 代码比较方便的和 DirectX 对接
从设计上 , 此 Vortice 库和 SharpDx 是对 DirectX 的低级封装 , 低级封装意味着将会让咱在开发时 , 必须了解非常的细节 , 但同时也带来了可以进行底层优化的可能
可以代替 SharpDx 的库 , 除了 Vortice 之外 , 还有很多 , 详细请看 SharpDx 的代替项目
在开始阅读本文之前 , 我期望读者已了解很多相关的知识 , 例如 Win32 的概念 , 以及 DirectX 是什么 , 和 .NET 框架的基础知识加 C# 的基础语法等知识 。尽管本文属于入门级博客 , 但不会涉及到过于基础的知识
想要开始使用 D2D 绘制内容 , 就需要有一个用来承载绘制内容的 "画布" 对象 , 在 D2D 里面 , 对应的就是一个 ID2D1RenderTarget 类型的对象
为了能在屏幕上能看到绘制的内容 , 那最好是有一个窗口用来显示绘制内容 。当然 , 使用离屏渲染也可以 , 只是用离屏渲染的话 , 自然有离屏渲染的自带的坑再加上为了能看到渲染内容而做的编码为图片的坑 , 这就让入门博客不友好了 。本文将通过 Win32 的方式一步步创建窗口 , 尽可能告诉大家更多的细节
本文使用的步骤如下:
- 创建一个 Win32 窗口
- 创建 D3D11 的设备 , 和交换链 , 将 D3D 挂到窗口上
- 通过 DXGI 配合 D3D11 创建 D2D 的 ID2D1RenderTarget 进行绘制修改颜色
使用非 VisualStudio 作为 IDE 的 , 那推荐本文看着玩就好了 , 不要去尝试本文的代码
新建一个 dotnet 6 的控制台项目
接下来咱将从这个控制台项目开始 , 编写 D2D 应用
本文贴出的代码只有部分 , 如果构建不通过 , 推荐到本文的最后获取整个项目的代码 。本文的所有的源代码可在本文的最后找到下载方式
安装库找到咱 dotnet 的惯例 , 在使用某个库之前 , 就是使用 NuGet 安装库
本文需要安装以下的 NuGet 库:
- Vortice.Direct2D1
- Vortice.Direct3D11
- Vortice.DirectX
- Vortice.D3DCompiler
- Vortice.Win32
- Microsoft.Windows.CsWin32
<ItemGroup><PackageReference Include="Vortice.Direct2D1" Version="2.1.32" /><PackageReference Include="Vortice.Direct3D11" Version="2.1.32" /><PackageReference Include="Vortice.DirectX" Version="2.1.32" /><PackageReference Include="Vortice.D3DCompiler" Version="2.1.32" /><PackageReference Include="Vortice.Win32" Version="1.6.2" /><PackageReference Include="Microsoft.Windows.CsWin32" PrivateAssets="all" Version="0.2.63-beta" /></ItemGroup>
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 为什么阿里Java开发手册不推荐使用Timestamp
- VMware安装Win11+WSA子系统和使用教程
- 拱辰享适合什么肤质的人使用?
- 护衣留香珠的使用方法?
- 悦薇水乳适合多大年纪的人使用?
- 怡丽丝尔护肤品适合多大年龄的人使用?
- 御泥坊眼膜贴适合什么年龄段的人使用?
- 御泥坊五件套使用步骤是什么?
- 御泥坊小金瓶适合什么人群使用?
- 御泥坊小金瓶适合什么年龄使用?