http://go.microsoft.com/fwlink/?LinkID=615561
著作権 (c) Microsoft Corporation.
2024 年 10 月 28 日
このパッケージには、Windows 11 および Windows 10 のユニバーサル Windows プラットフォーム (UWP) アプリ、Xbox Series X|S および Xbox One のゲーム タイトル、および Win32 用の Direct3D 12 C++ コードを作成するためのヘルパー クラスのコレクションである「DirectX ツール キット」が含まれています。 Windows 11 および Windows 10 用のデスクトップ アプリケーション。
このコードは、Visual Studio 2019 (16.11)、Visual Studio 2022、clang for Windows v12 以降、または MinGW 12.2 でビルドするように設計されています。 Visual Studio では、Windows 10 May 2020 Update SDK (19041) 以降を使用する必要があります。
これらのコンポーネントは、従来の DirectX SDK のコンテンツを必要とせずに動作するように設計されています。詳細については、「DirectX SDK はどこにありますか?」を参照してください。
Inc
パブリック ヘッダー ファイル (DirectX C++ 名前空間内):
Src
Audio
build
MakeSpriteFont と XWBTool は、DirectX 11 用の DirectX ツール キットに含まれています。
ドキュメントは GitHub wiki で入手できます。
このパッケージのすべてのコンテンツとソース コードには、MIT ライセンスの条件が適用されます。
DirectXTK12 の最新バージョンやバグレポートなどについては、GitHub のプロジェクト サイトをご覧ください。
Visual Studio Directed Graph Shader Language (DGSL) エフェクト シェーダ (つまりDGSLEffect ) はサポートされていません。 CMO ファイルは、BasicEffect または SkinnedEffect マテリアルを使用してロードされます。
VertexTypes には、DGSL パイプラインでの使用を目的とした VertexPositionNormalTangentColorTexture または VertexPositionNormalTangentColorTextureSkinning は含まれていません。
DirectX 11 用の DirectX ツール キットは機能レベル 9.x をサポートしますが、DirectX 12 には Direct3D 機能レベル 11.0 が必要です。下位機能レベルのデバイス用に予期される DirectX 12 ドライバーはありません。
このライブラリは、Windows 10 (別名_WIN32_WINNT=0x0A00
) 用にビルドされていることを前提としているため、XAudio 2.9 と WIC2、および DirectX 12 を利用します。
オーディオ、ゲームパッド、キーボード、マウス、SimpleMath 用の DirectX ツール キットは、DirectX 11 バージョンと同じです。
セキュリティ アドバイザリについては、GitHub を参照してください。
完全な変更履歴については、CHANGELOG.md を参照してください。
2024 年 6 月のリリースでは、 BufferHelpersのCreateUploadBuffer
関数のデフォルトのパラメーターinitialState
が削除されました。 DirectX 12 検証レイヤーごとに、アップロード バッファーの有効な初期状態はD3D12_RESOURCE_STATE_GENERIC_READ
のみです。
2023 年 2 月のリリース以降、相対的なマウス移動の Mouse クラスの実装が更新され、 GetState
の呼び出し間の変更が蓄積されました。デフォルトでは、 GetState
呼び出すたびにデルタがリセットされます。これは、相対移動を使用するがフレームごとにメソッドを 1 回だけ呼び出すシナリオで機能します。フレームごとに複数回呼び出す場合は、明示的な呼び出しをEndOfInputFrame
に追加して、代わりに明示的なリセット モデルを使用します。
2022 年 9 月リリースの時点で、ライブラリは、 DirectX ツール キットの DirectX 11 および DirectX 12 バージョンで同じ名前を持つさまざまな型に対して C++11 インライン名前空間を使用します。これにより、リンカー出力メッセージに表示されるDirectX::DX12::SpriteBatch
などのリンク固有の名前が提供されます。ただし、ほとんどの使用例では、クライアント コードに明示的なDX12
名前空間解決を追加する必要はありません。
2021 年 6 月のリリース以降、このライブラリは DXC 経由で Shader Model 6 を使用して HLSL シェーダーを構築します。詳細については、この Wiki ページを参照してください。 Microsoft GDK プロジェクトは常に Shader Model 6 を使用してきました。
2020 年 6 月のリリース以降、このライブラリは、 C++ 標準セクション17.5.2.1.3 ビットマスク タイプの推奨に従って、型付き列挙型ビットマスク フラグを使用します。これにより、クライアント コードに重大な変更が影響する可能性があります。
フラグ値として0
リテラルを渡すことはできません。代わりに、適切なデフォルト列挙値 ( AudioEngine_Default
、 SoundEffectInstance_Default
、 ModelLoader_Clockwise
、 DDS_LOADER_DEFAULT
、またはWIC_LOADER_DEFAULT
を使用する必要があります。
ビットマスク操作を使用してローカルでフラグ値を構築する場合は、 DWORD
の代わりに列挙型を使用します。たとえば、 WIC_LOADER_FLAGS flags = WIC_LOADER_DEFAULT; if (...) flags |= WIC_LOADER_FORCE_SRGB;
UWP プロジェクトと Win10 クラシック デスクトップ プロジェクトには、ARM64 プラットフォームの構成が含まれています。これらを構築するには、ARM64 ツールセットをインストールする必要があります。
ARM64/AArch64 開発の場合は、VS 2019 ツールセットよりも VS 2022 コンパイラーを強く推奨します。 Windows SDK (26100 以降) は、ARM64 開発における Win32 用の VS 2019 と互換性がありません。 ARM32/AArch32 プラットフォームは非推奨であることに注意してください。
ARM64/AArch64 プラットフォームで Clang/LLVM を使用する場合は、Windows 11 SDK (22000) 以降が必要です。
CompileShaders.cmd
スクリプトには Windows スタイル (CRLF) の行末が必要です。 Linux スタイル (LF) の行末に変更すると、必要なシェーダーをすべてビルドできない可能性があります。
質問がある場合は、 directxtkタグを使用した Stack Overflow の使用、またはdx12-developersチャネルの DirectX Discord Server の使用を検討してください。
バグレポートや機能リクエストについては、このプロジェクトの GitHub 問題を使用してください。
このプロジェクトは貢献と提案を歓迎します。ほとんどの投稿では、投稿を使用する権利をお客様が有しており、実際に当社に付与することを宣言する投稿者ライセンス契約 (CLA) に同意する必要があります。詳細については、https://cla.opensource.microsoft.com をご覧ください。
プル リクエストを送信すると、CLA ボットが CLA を提供する必要があるかどうかを自動的に判断し、PR を適切に装飾します (ステータス チェック、コメントなど)。ボットが提供する指示に従ってください。 CLA を使用するすべてのリポジトリでこれを 1 回行うだけで済みます。
新機能のテストも PR としてテスト スイート リポジトリに送信する必要があります。
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、「行動規範に関するよくある質問」を参照するか、追加の質問やコメントがあれば [email protected] までお問い合わせください。
このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。 Microsoft の商標またはロゴの許可された使用には、Microsoft の商標およびブランド ガイドラインが適用され、それに従わなければなりません。このプロジェクトの修正バージョンで Microsoft の商標またはロゴを使用することは、混乱を引き起こしたり、Microsoft のスポンサーであることを暗示したりしてはなりません。第三者の商標またはロゴの使用には、それらの第三者のポリシーが適用されます。
DirectX 11 用の DirectX ツール キットは、 Shawn Hargreaves と Chuck Walbourn が作成し、Aaron Rodriguez Hernandez と Dani Roman が貢献しました。
DirectX 12 用の DirectX ツール キットは、 Pete Lewis、Justin Saunders、および Chuck Walbourn によって作成され、DirectX 11 用の DirectX ツール キットを大きくベースにしています。
SDKMESH ファイル形式については Shanon Drone に感謝します。
測地球の実装については、Adrian Tsai に感謝します。
DirectX ツール キット用の NuGet パッケージの作成に協力してくれた Garrett Serack に感謝します。
法線マップおよび PBR シェーダの実装については、Pete Lewis と Justin Saunders に感謝します。
mGPU をサポートしてくれた Travis Johnson に感謝します。
CMO フォーマットと VS スターター キットのアニメーションに関して協力してくれた Roberto Sonnino に感謝します。
Xbox PIX カスタム メモリとタイプ割り当て追跡イベントのサポートに貢献してくれた Richie Meyer に感謝します。
コードレビューで継続的に協力してくれた Andrew Farrier と Scott Matloff に感謝します。