DX11 Without DirectX SDK--04 使用DirectX Tool Kit帮助开发
前言(2018/11/4)
DXTK库现在已经不随Github项目提供,因为只用到了其中的键鼠类,已经过提取加入到后续的项目中
但是如果你需要配置DirectXTK到自己的项目当中,可以参考这篇博客进行操作。
否则可以直接跳转到下一章。
| 章节目录 |
|---|
| 05 键盘和鼠标输入 |
DirectX11 With Windows SDK完整目录
欢迎加入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
打开项目后,里面会有三个项目,而我们的关注点仅在第一个项目,可以把该项目单独拉出来操作或者合并到你的解决方案中:

该项目右键--属性--常规--Windows SDK版本检查是不是最新的,否则要变更为当前你的Windows SDK版本。
然后将项目按下面的方式进行修改

其中$(Platform)指代的是Win32或者x64,取决于你现在的设置。
而$(Configuration)则指代的是Debug或者Release。
最后就可以编译生成静态库了。(2018/9/3更新:编译不通过的话,如果你的VS更新到了15.8.3,去Github项目的README.md有该问题的解决方法!)
而对于其他的项目,这里使用的是属性配置表(.props)文件,根据前面的设置,我们可以做到只用一个属性配置表就能够完成所有平台和配置下的包含路径和库路径设置。
在GitHub项目的DXTK\中已经包含了一份DXTK.props,首先是附加包含目录的配置:

$(SolutionDir)指代的是当前解决方案所在的路径。
然后是附加库目录的配置:

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

当然你也可以自己建立一个属性配置表,按自己的需求来进行设置。
最后在VS的视图中找到属性管理器,直接对项目右键添加现有属性配置表。这样对应的四种平台配置就都包含了这个属性配置表了。

对于多项目的解决方案,如果你的解决方案包含了DirectXTK库,则需要修改项目生成顺序。选择一个项目点击右键-生成依赖项-项目依赖项,然后如果你的当前项目需要依赖该库,就将其打勾:

最后查看项目生成顺序确保DirectXTK库优先生成。

完成这些操作后就可以对该解决方案进行编译了。
DirectX11 With Windows SDK完整目录
欢迎加入QQ群: 727623616 可以一起探讨DX11,以及有什么问题也可以在这里汇报。
DX11 Without DirectX SDK--04 使用DirectX Tool Kit帮助开发的更多相关文章
- DirectX11 With Windows SDK--04 使用DirectX Tool Kit帮助开发
前言(2018/11/4) DXTK库现在已经不随Github项目提供,因为只用到了其中的键鼠类,已经过提取加入到后续的项目中 但是如果你需要配置DirectXTK到自己的项目当中,可以参考这篇博客进 ...
- DirectX SDK版本与Visual Studio版本
对于刚刚接触 DirectShow 的人来说,安装配置是一个令人头疼的问题,经常出现的情况是最基本的 baseclass 就无法编译.一开始我也为此费了很大的功夫,比如说修改代码.修改编译选项使其编译 ...
- C#使用 DirectX SDK 9做视频播放器 并在视频画线添加文字 VMR9
视频图像处理系列 索引 VS2013下测试通过. 在百度中搜索关键字“DirectX SDk”,或者进入微软官网https://www.microsoft.com/en-us/download/det ...
- VS2012添加对DirectX SDK中需要文件的引用
error LNK2019: 无法解析的外部符号 _DirectDrawCreateEx@16,该符号在函数 "int __cdecl DD_Init(int,int,int)" ...
- 在VS2013、VS2015下如何配置DirectX SDK的开发环境
在Visual Studio 2013下配置DirectX SDK可以进行基于DirectX的3D大型应用程序的开发.如果在开发DirectX程序时不配置其开发环境会引起编译器报错, 下面就与大家分享 ...
- DirectX SDK (June 2010)安装错误S1023,解决方法
转自:http://hi.baidu.com/rootcat/item/6730f15f85e2c1958c12ed81 DirectX SDK (June 2010)安装错误S1023,解决方法 导 ...
- 安装 directx sdk 出现 S1023 解决
造成原因: directx sdk 在安装10.0.30319 of the Visual C++ Redistributable的时候发现有一个新版本的 Microsoft Visual C++ 2 ...
- Microsoft DirectX SDK 2010 版本下载
Microsoft DirectX SDK 2010 版本下载 Version:Date Published:9.29.19626/7/2010File name:File size:DXSDK_Ju ...
- 关于DirectShow SDK 和Windows SDK,及DirectX SDK
关于DirectShow SDK 和Windows SDK,及DirectX SDK 本文描述了DirectShow SDK ,Windows SDK,DirectX SDK ,VS200?之间的 ...
随机推荐
- 反对抄袭 正解spring的@Autowired 不要相信网上的错误版本
首先,最重要的, @Autowired的就是用来来消除 set ,get方法. 有些介绍,如著名的马士兵,说要在set方法上进行注入.我当时就看不明白了,既然只取消了一个GET,这个@Autowire ...
- Cocos2D的平台检查宏
为了避免在非iOS平台包含UIKit.h文件,需要在Prefix.pch文件中添加一个条件判断: #if __CC_PLATFORM_IOS #import <UIKit/UIKit.h> ...
- 【一天一道LeetCode】#28. Implement strStr()
一天一道LeetCode系列 (一)题目 Implement strStr(). Returns the index of the first occurrence of needle in hays ...
- HBASE表设计
1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数 ...
- GRUB与Linux系统修复(第二版)
GRUB配置解析 配置文件保存在 /boot/grub/grub.conf[/boot分区最好应该单独划分出来] 软链接保存在 /etc/grub.conf 1.grub.conf文件分析 defau ...
- 【Visual C++】游戏编程学习笔记之六:多背景循环动画
本系列文章由@二货梦想家张程 所写,转载请注明出处. 本文章链接:http://blog.csdn.net/terence1212/article/details/44264153 作者:ZeeCod ...
- Linux - gcc 的简易用法 (编译、参数与链结)
# 仅将原始码编译成为目标档,并不制作连结等功能: [root@www ~]# gcc -c hello.c # 会自动的产生 hello.o 这个文件,但是并不会产生 binary 运行档. # 在 ...
- openresty+websocket+redis simple chat
openresty 很早就支持websocket了,但是早期的版本cosocket是单工的,处理起来比较麻烦参见邮件列表讨论 websocket chat,后来的版本cosocket是双全工的,就可以 ...
- 用JAVA代码获取Weblogic配置的JNDI 数据源连接
第一步:生成与JDK版本对应的weblogicjar,利用cmd 进入到weblogic_home 路径下进入到server/lib目录,然后运行 JDK 1.6 命令 "java -j ...
- python标准库之MultiProcessing库的研究 (1)
MultiProcessing模块是一个优秀的类似多线程MultiThreading模块处理并发的包之前接触过一点这个库,但是并没有深入研究,这次闲着无聊就研究了一下,算是解惑吧.今天先研究下appl ...