前言(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,以及有什么問題也可以在這里匯報。
