著作権 (c) Microsoft Corporation.
2024 年 10 月 28 日
このパッケージには、Windows 11、Windows 10、Xbox One 用のユニバーサル Windows プラットフォーム (UWP) アプリ、および Windows 7 Service Pack 1 用の Win32 デスクトップ アプリケーション用の Direct3D 11 C++ コードを作成するためのヘルパー クラスのコレクションである「DirectX ツール キット」が含まれています。後で。
このコードは、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
Audio.h - XAudio2 (DirectXTK for Audio パブリック ヘッダー) を使用した低レベルのオーディオ API
BufferHelpers.h - CPU データから D3D リソースを作成するための C++ ヘルパー
CommonStates.h - 一般的に使用される D3D 状態オブジェクトを提供するファクトリ
DDSTextureLoader.h - 軽量の DDS ファイル テクスチャ ローダー
DirectXHelpers.h - D3D プログラミング用のその他の C++ ヘルパー
Effects.h - 一般的なレンダリング タスク用の組み込みシェーダーのセット
GamePad.h - XInput、Windows.Gaming.Input、または GameInput を使用するゲームパッド コントローラー ヘルパー
GeometricPrimitive.h - 立方体や球などの基本的な形状を描画します
GraphicsMemory.h - 動的グラフィックス メモリ割り当てを管理するためのヘルパー
Keyboard.h - キーボード状態追跡ヘルパー
Model.h - .CMO、.SDKMESH、または .VBO ファイルからロードされたメッシュを描画します
Mouse.h - マウスヘルパー
PostProcess.h - 一般的な後処理操作用の組み込みシェーダーのセット
PrimitiveBatch.h - ユーザー プリミティブを描画するためのシンプルかつ効率的な方法
ScreenGrab.h - 軽量のスクリーンショット セーバー
SimpleMath.h - DirectXMath 用の簡略化された C++ ラッパー
SpriteBatch.h - シンプルかつ効率的な 2D スプライト レンダリング
SpriteFont.h - ビットマップベースのテキストレンダリング
VertexTypes.h - 一般的に使用される頂点データ形式の構造体
WICTextureLoader.h - WIC ベースの画像ファイル テクスチャ ローダー
XboxDDSTextureLoader.h - DDSTextureLoader の Xbox One 専用アプリのバリアント
パブリック ヘッダー ファイル (DirectX C++ 名前空間内):
Src
DirectXTK ソース ファイルと内部実装ヘッダー
Audio
オーディオ ソース ファイルおよび内部実装ヘッダー用の DirectXTK
MakeSpriteFont
SpriteFont で使用するバイナリ リソースを生成するために使用されるコマンド ライン ツール
XWBTool
DirectXTK for Audio の WaveBank クラスで使用する XACT スタイルのウェーブ バンクを構築するためのコマンド ライン ツール
build
ビルド パイプラインの YAML ファイルと、その他のビルド ファイルおよびスクリプトが含まれています。
ドキュメントは GitHub wiki で入手できます。
このパッケージのすべてのコンテンツとソース コードには、MIT ライセンスの条件が適用されます。
DirectXTK の最新バージョンやバグレポートなどについては、GitHub のプロジェクト サイトをご覧ください。
セキュリティ アドバイザリについては、GitHub を参照してください。
完全な変更履歴については、CHANGELOG.md を参照してください。
2023 年 2 月のリリース以降、相対的なマウス移動の Mouse クラス実装が更新され、 GetState
の呼び出し間の変更が蓄積されました。デフォルトでは、 GetState
呼び出すたびにデルタがリセットされます。これは、相対移動を使用するがフレームごとにメソッドを 1 回だけ呼び出すシナリオで機能します。フレームごとに複数回呼び出す場合は、明示的な呼び出しをEndOfInputFrame
に追加して、代わりに明示的なリセット モデルを使用します。
2022 年 9 月リリースの時点で、ライブラリは、 DirectX ツール キットの DirectX 11 および DirectX 12 バージョンで同じ名前を持つさまざまな型に対して C++11 インライン名前空間を使用します。これにより、リンカー出力メッセージに表示されるDirectX::DX11::SpriteBatch
などのリンク固有の名前が提供されます。ただし、ほとんどの使用例では、クライアント コードに明示的なDX11
名前空間解決を追加する必要はありません。
2022 年 7 月のリリース以降、DDSTextureLoader Ex
関数のbool forceSRGB
パラメーターは、 DDS_LOADER_FLAGS
型の enum ビットマスク フラグ パラメーターになりました。これは、クライアント コードに重大な変更の影響を与える可能性があります。 true
DDS_LOADER_FORCE_SRGB
に置き換え、 false
DDS_LOADER_DEFAULT
に置き換えます。
2021 年 10 月のリリース以降、DGSLEffect はスキニングを直接サポートしなくなりました。代わりに、DGSLEffect から派生したSkinnedDGSLEffectを使用してください。
2020 年 6 月のリリース以降、このライブラリは、 C++ 標準セクション17.5.2.1.3 ビットマスク タイプの推奨に従って、型付き列挙型ビットマスク フラグを使用します。これにより、クライアント コードに重大な変更が影響する可能性があります。
フラグ値として0
リテラルを渡すことはできません。代わりに、適切なデフォルト列挙値 ( AudioEngine_Default
、 SoundEffectInstance_Default
、 ModelLoader_Clockwise
、または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) の行末に変更すると、必要なシェーダーをすべてビルドできない可能性があります。
Xbox One の DirectX 11 サポートには、従来の Xbox One XDK が必要です。必要なプロジェクト ファイルについては、 DirectX Tool Kitの 2023 年 2 月以前のリリースを参照してください。
2024 年 10 月リリースの時点で、xwbtool コマンドライン ツールは--
を使用した GNU スタイルの長いオプションもサポートしています。既存のスイッチはすべて引き続き機能します。 MakeSpriteFont は、POSIX スタイルのパラメーターとして--version
と--help
をサポートします。
質問がある場合は、 directxtkタグを使用した Stack Overflow の使用、またはdx9-dx11-developersチャネルの DirectX Discord Server の使用を検討してください。
バグレポートや機能リクエストについては、このプロジェクトの GitHub 問題を使用してください。
このプロジェクトは貢献と提案を歓迎します。ほとんどの投稿では、投稿者が投稿を使用する権利を当社に付与する権利を有し、実際に付与していることを宣言する投稿者ライセンス契約 (CLA) に同意する必要があります。詳細については、https://cla.opensource.microsoft.com をご覧ください。
プル リクエストを送信すると、CLA ボットが CLA を提供する必要があるかどうかを自動的に判断し、PR を適切に装飾します (ステータス チェック、コメントなど)。ボットが提供する指示に従ってください。 CLA を使用するすべてのリポジトリでこれを 1 回行うだけで済みます。
新機能のテストも PR としてテスト スイート リポジトリに送信する必要があります。
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、「行動規範に関するよくある質問」を参照するか、追加の質問やコメントがあれば [email protected] までお問い合わせください。
このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。 Microsoft の商標またはロゴの許可された使用には、Microsoft の商標およびブランド ガイドラインが適用され、それに従わなければなりません。このプロジェクトの修正バージョンで Microsoft の商標またはロゴを使用することは、混乱を引き起こしたり、Microsoft のスポンサーであることを暗示したりしてはなりません。第三者の商標またはロゴの使用には、それらの第三者のポリシーが適用されます。
DirectX ツール キットは、Shawn Hargreaves と Chuck Walbourn が作成し、Aaron Rodriguez Hernandez と Dani Roman が貢献しました。
SDKMESH ファイル形式については Shanon Drone に感謝します。
測地球の実装については、Adrian Tsai に感謝します。
DirectX ツール キット用の NuGet パッケージの作成に協力してくれた Garrett Serack に感謝します。
CMO
、DGSL レンダリング、VS スターター キット アニメーションに関して協力してくれた Roberto Sonnino に感謝します。
法線マップおよび PBR シェーダーの実装については、Pete Lewis と Justin Saunders に感謝します。
コードレビューで継続的に協力してくれた Andrew Farrier と Scott Matloff に感謝します。