DX11 Without DirectX SDK--04 使用DirectX Tool Kit幫助開發

来源:https://www.cnblogs.com/X-Jun/archive/2018/05/13/9033627.html
-Advertisement-
Play Games

"回到 DirectX11 使用Windows SDK來進行開發" "DirectX Tool Kit下載" DirectX Tool Kit是一個包含許多類的集合,用於為公共Windows平臺編寫Direct3D 11 C++代碼。裡面包含如下可用的頭文件(基本上都在名稱空間DirectX中): ...


回到 DirectX11--使用Windows SDK來進行開發

DirectX Tool Kit下載

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

打開項目後,裡面會有三個項目,而我們的關註點僅在第一個項目:

image

該項目右鍵--屬性--常規--Windows SDK版本檢查是不是最新的,否則要變更為當前你的Windows SDK版本。

我們需要修改Debug Win32, Debug x64, Release Win32和Release x64所有4個模式,然後對這4個模式分別生成一次,我們所需要的最終產物為4個模式下的靜態庫。

生成成功後,在Bin\Desktop_2017_Win10\Win32的Debug和Release文件夾裡面都有生成的DirectXTK.lib,其中對Debug版本改為DirectXTKd.lib進行區分。然後在Bin\Desktop_2017_Win10\x64的Debug和Release文件夾裡面生成的靜態庫也做一樣的操作

將Inc文件夾和上面的四個靜態庫文件提取出來,自行整理成一個第三方庫的文件夾,如:

DXTK\
DXTK\Inc\
DXTK\Inc\...
DXTK\Lib\
DXTK\Lib\Win32\
DXTK\Lib\Win32\DirectXTK.lib
DXTK\Lib\Win32\DirectXTKd.lib
DXTK\Lib\x64\
DXTK\Lib\x64\DirectXTK.lib
DXTK\Lib\x64\DirectXTKd.lib

那麼後續的項目如果要用到DXTK,就需要包含文件夾 DXTK\Inc,並根據x86/Win32還是x64選擇正確的庫路徑,然後再根據當前是Debug模式還是Release模式來選擇引進正確的庫。

我們可以新建4個項目屬性表,讓後續的項目都使用上這4個屬性表,以減少配置流程。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Python isdigit() 方法檢測字元串是否只由數字組成。 Python int() 函數用於將一個字元串或數字轉換為整型。 判斷字元、列表、元組等的長度或項目個數:Python len()。 enumerate() 函數用於將一個可遍歷的數據對象(如列表、元組或字元串)組合為一個索引序列, ...
  • 責任鏈模式,Chain of Responsibility,Java實現 ...
  • 需要實現的功能是:三級菜單1.從文本內讀出選項2.查詢每一級的選項,並能對選項進行增/刪/改功能3.每一級可以退出程式或者返回上一層思路三個操作模塊,分別是 增/刪/改 功能三個查詢模塊,分別對每一級別進行查詢報錯信息:Traceback (most recent call last): File  ...
  • 編程問題中相當大的一部分都可以通過使用順序編程來解決。 對於某些問題,如果能夠並行地執行程式中的多個部分,則會變得非常方便。 並行編程可以使程式執行速度得到極大地提高。 當並行執行的任務彼此開始產生互相干涉時,實際的併發問題就會接踵而至。 Web伺服器經常包含多個處理器,而併發是充分利用這些處理器的 ...
  • 手冊里可能有寫,但不是特別清晰,在這給個實例,有兩種方式: 1.多個入口文件: 將public下的index.php複製一份,粘貼、重命名為對應模塊的名字,如admin: 編輯admin.php的內容,修改模塊綁定的代碼: 之後訪問方式就是'功能變數名稱/admin.php',沒有映射功能變數名稱就是'localh ...
  • 一. Java多線程: Java給多線程編程提供了內置的支持。一條線程指的是進程中一個單一順序的控制流,一個進程中可以併發多個線程,每條線程並行執行不同的任務。 多線程是多任務的一種特別的形式,但多線程使用了更小的資源開銷。 這裡定義和線程相關的另一個術語--進程:一個進程包括由操作系統分配的記憶體空 ...
  • jenkins中集成commander應用 jenkins 集成測試 promotion 公司的應用較多,所以需要瞭解這幾種應用在jenkins中如何做構建,我自己參與的有兩種commander的應用,一種是大數據類的,一個是我們服務端架構組的scala應用 1、大數據應用BigData 配置如下: ...
  • 1、說一說Servlet的生命周期? Servlet有良好的生存期的定義,包括載入和實例化、初始化、處理請求以及服務結束。這個生存期由javax.servlet.Servlet介面的init(),service()和destroy方法表達。 Servlet被伺服器實例化後,容器運行其init方法,請 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...