DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发

时间:2024-06-09 11:04:14

前言(2018/11/4)

DXTK库现在已经不随Github项目提供,因为只用到了其中的键鼠类,已经过提取加入到后续的项目中

但是如果你需要配置DirectXTK到自己的项目当中,可以参考这篇博客进行操作。

否则可以直接跳转到下一章。

章节目录
05 键盘和鼠标输入

DXTK项目

DirectX11 With Windows SDK完整目录

Github项目源码

欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报。

DirectXTK的配置

DirectX Tool Kit是一个包含许多类的集合,用于为公共Windows平台编写Direct3D 11 C++代码。里面包含如下可用的头文件(基本上都在名称空间DirectX中):

头文件 描述
Audio.h 使用了XAudio2的底层音频API
CommonStates.h 一个工厂类,提供了常用的D3D状态对象
DDSTextureLoader.h 用于读取DDS文件
DirectXHelpers.h 各种各样的助手类,用于帮助D3D程序开发
Effects.h 一系列内建着色器的集合,用于日常渲染任务
GamePad.h 用于控制手柄
GeometricPrimitive.h 用于创建、绘制一些常见的图元如球体、立方体
GraphicsMemory.h 用于管理动态图形内存分配
Keyboard.h 键盘事件追踪
Model.h 通过读取 .COM, .SDKMESH 或者 .VBO模型文件来绘制模型
Mouse.h 鼠标时间追踪
PostProcess.h 一系列内建着色器用于常见的后期处理操作
PrimitiveBatch.h 提供简单高效的,绘制用户图元的方式
ScreenGrab.h 轻量级截屏工具
SimpleMath.h 简单包装了C++的DirectXMath
SpriteBatch.h 提供简单高效的,用于2D精灵渲染的方式
SpriteFont.h 基于位图的文字渲染
VertexTypes.h 一系列常用于顶点数据的结构体格式
WICTextureLoader.h 读取WIC位图的文件
XboxDDSTextureLoader.h 用于为XBox读取DDS文件

获取了最新版的DirectX Tool Kit后,里面是一系列解决方案,我们可以根据自己的VS版本打开。这里我选择的是DirectXTK_Desktop_2017_Win10.sln

打开项目后,里面会有三个项目,而我们的关注点仅在第一个项目,可以把该项目单独拉出来操作或者合并到你的解决方案中:

DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发

该项目右键--属性--常规--Windows SDK版本检查是不是最新的,否则要变更为当前你的Windows SDK版本。

然后将项目按下面的方式进行修改
DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发

其中$(Platform)指代的是Win32或者x64,取决于你现在的设置。

$(Configuration)则指代的是Debug或者Release。

最后就可以编译生成静态库了。(2018/9/3更新:编译不通过的话,如果你的VS更新到了15.8.3,去Github项目的README.md有该问题的解决方法!

而对于其他的项目,这里使用的是属性配置表(.props)文件,根据前面的设置,我们可以做到只用一个属性配置表就能够完成所有平台和配置下的包含路径和库路径设置。

在GitHub项目的DXTK\中已经包含了一份DXTK.props,首先是附加包含目录的配置:

DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发

$(SolutionDir)指代的是当前解决方案所在的路径。

然后是附加库目录的配置:

DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发

最后是附加依赖项的配置:

DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发

当然你也可以自己建立一个属性配置表,按自己的需求来进行设置。

最后在VS的视图中找到属性管理器,直接对项目右键添加现有属性配置表。这样对应的四种平台配置就都包含了这个属性配置表了。

DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发

对于多项目的解决方案,如果你的解决方案包含了DirectXTK库,则需要修改项目生成顺序。选择一个项目点击右键-生成依赖项-项目依赖项,然后如果你的当前项目需要依赖该库,就将其打勾:
DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发

最后查看项目生成顺序确保DirectXTK库优先生成。
DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发

完成这些操作后就可以对该解决方案进行编译了。

DirectX11 With Windows SDK完整目录

Github项目源码

欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报。