http://go.microsoft.com/fwlink/?LinkId=248926
著作権 (c) Microsoft Corporation.
2024 年 10 月 28 日
このパッケージには、 .DDS
ファイルの読み取りと書き込み、およびサイズ変更、形式変換、ミップマップ生成、Direct3D ランタイム テクスチャ リソースのブロック圧縮、法線への高さマップなどのさまざまなテクスチャ コンテンツ処理操作を実行するための共有ソース ライブラリである DirectXTex が含まれています。地図変換。このライブラリは、Windows Image Component (WIC) API を利用します。 .TGA
および.HDR
リーダーおよびライターも含まれています。これらの画像ファイル形式はテクスチャ コンテンツ処理パイプラインに一般的に使用されますが、現在組み込みの WIC コーデックではサポートされていないためです。
このコードは、Visual Studio 2019 (16.11)、Visual Studio 2022、clang for Windows v12 以降、または MinGW 12.2 でビルドするように設計されています。 Visual Studio では、Windows 10 May 2020 Update SDK (19041) 以降を使用する必要があります。 GCC 11 以降を使用して Linux 用 Windows サブシステム用に構築することもできます。
これらのコンポーネントは、従来の DirectX SDK のコンテンツを必要とせずに動作するように設計されています。詳細については、「DirectX SDK はどこにありますか?」を参照してください。
DirectXTex
ここにあるヘッダー ファイルの大部分は、ライブラリの内部実装のみを目的としています (
BC.h
、BCDirectCompute.h
、DDS.h
、DirectXTexP.h
など)。DirectXTex.h
とDirectXTex.inl
のみがライブラリの「パブリック」ヘッダーとして意図されています。
Auxiliary
Common
Texconv
この DirectXTex サンプルは、D3DX ではなく DirectXTex を利用した DirectX SDK の texconv コマンド ライン テクスチャ ユーティリティの実装です。
これは、テクスチャ変換ツール拡張( texconvex.exe
) の従来の DirectX SDK ユーティリティと同じ引数をサポートします。主な違いは、 -10
および-11
引数が適用できないことと、フィルター名 ( POINT
、 LINEAR
、 CUBIC
、 FANT
またはBOX
、 TRIANGLE
、 *_DITHER
、 *_DITHER_DIFFUSION
) であることです。これには、JPEG XR (HD Photo) ビットマップ形式のサポートも含まれます。
Texassemble
Texdiag
DDSView
DDSTextureLoader
ScreenGrab
WICTextureLoader
DDSTextureLoader11、ScreenGrab11、および WICTextureLoader11 は、DX11 用の DirectX ツール キットで提供される同じモジュールの「スタンドアロン」バージョンです。
DDSTextureLoader12、ScreenGrab12、および WICTextureLoader12 は、DX12 用の DirectX ツール キットで提供される同じモジュールの「スタンドアロン」バージョンです。
build
ドキュメントは GitHub wiki で入手できます。
このパッケージのすべてのコンテンツとソース コードには、MIT ライセンスの条件が適用されます。
DirectXTex の最新バージョンやバグレポートなどについては、GitHub のプロジェクト サイトをご覧ください。
セキュリティ アドバイザリについては、GitHub を参照してください。
完全な変更履歴については、CHANGELOG.md を参照してください。
2022 年 7 月のリリース以降、CreateTextureEx 関数と CreateShaderResourceViewEx 関数のbool forceSRGB
パラメーターは、 CREATETEX_FLAGS
型の enum ビットマスク フラグ パラメーターになりました。これは、クライアント コードに重大な変更の影響を与える可能性があります。 true
CREATETEX_FORCE_SRGB
に置き換え、 false
CREATETEX_DEFAULT
に置き換えます。
2020 年 6 月のリリース以降、このライブラリは、 C++ 標準セクション17.5.2.1.3 ビットマスク タイプの推奨に従って、型付き列挙型ビットマスク フラグを使用します。これは、Direct3D 12 のDEFINE_ENUM_FLAG_OPERATORS
マクロの使用と一致しています。これは、クライアント コードに重大な変更の影響を与える可能性があります。
フラグ値として0
リテラルを渡すことはできません。代わりに、適切なデフォルトの列挙値 ( CP_FLAGS_NONE
、 DDS_FLAGS_NONE
、 WIC_FLAGS_NONE
、 TEX_FR_ROTATE0
、 TEX_FILTER_DEFAULT
、 TEX_FILTER_DEFAULT
、 TEX_FILTER_DEFAULT
、 CNMAP_DEFAULT
、またはCNMAP_DEFAULT
) を使用する必要があります。
ビットマスク操作を使用してローカルでフラグ値を構築する場合は、 DWORD
の代わりに列挙型を使用します。たとえば、 DDS_FLAGS flags = DDS_FLAGS_NONE; if (...) flags |= DDS_FLAGS_EXPAND_LUMINANCE;
一部のフラグが重複する場合は、 |
使用できます。関連するタイプを組み合わせるには: TEX_FILTER_FLAGS
フィルター モードはWIC_FLAGS
と組み合わせ、 TEX_FILTER_FLAGS
sRGB フラグはTEX_PMALPHA_FLAGS
またはTEX_COMPRESS_FLAGS
と組み合わせます。他のビット演算子は定義されていません。たとえば、 WIC_FLAGS wicFlags = WIC_FLAGS_NONE | TEX_FILTER_CUBIC;
システムにサードパーティの WIC コーデックがインストールされていない限り、WICTextureLoader は.TGA
または.HDR
ファイルをロードできません。 TGA/HDR ファイル形式をサポートするには、アドオン WIC コーデックに依存せずに DirectXTex ライブラリを使用する必要があります。
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) の行末に変更すると、必要なシェーダーをすべてビルドできない可能性があります。
2024 年 10 月リリースの時点で、コマンドライン ツールは--
使用した GNU スタイルの長いオプションもサポートしています。既存のすべてのスイッチは引き続き機能しますが、次の表に従って、一部の-
オプションは廃止されました。
テクアセンブル | テクスコンブ | テックスディアグ | |||
---|---|---|---|---|---|
-トーンマップ | --トーンマップ | -バッドテイルズ | --悪い尾 | -バッドテイルズ | --悪い尾 |
-bgcolor | --gif-bg-color | -fixbc4x4 | --fix-bc-4x4 | -ignoremips | --ignore-mips |
-スウィズル | --スウィズル | -ignoremips | --ignore-mips | -寛容な | --寛容 |
-ストリップミップ | --ストリップミップ | -反転 | --invert-y | -ターゲットx | --ターゲット-x |
-カバーを維持する | --キープカバレッジ | ||||
-寛容な | --寛容 | ||||
-再構築 | --再構築-z | ||||
-回転カラー | --回転カラー | ||||
-singleproc | --single-proc | ||||
-スウィズル | --スウィズル | ||||
-tガゼロアルファ | --tga-ゼロ-アルファ | ||||
-タイミング | - タイミング | ||||
-トーンマップ | --トーンマップ | ||||
-ウィクロスレス | --wic-ロスレス | ||||
-wicmulti | --wic-マルチフレーム | ||||
-x2バイアス | --x2-バイアス |
質問がある場合は、 directxtkタグを指定した Stack Overflow の使用、またはdx12-developersまたはdx9-dx11-developersチャネルの DirectX Discord Server の使用を検討してください。
バグレポートや機能リクエストについては、このプロジェクトの GitHub 問題を使用してください。
このプロジェクトは貢献と提案を歓迎します。ほとんどの投稿では、投稿を使用する権利をお客様が有しており、実際に当社に付与することを宣言する投稿者ライセンス契約 (CLA) に同意する必要があります。詳細については、https://cla.opensource.microsoft.com をご覧ください。
プル リクエストを送信すると、CLA ボットが CLA を提供する必要があるかどうかを自動的に判断し、PR を適切に装飾します (ステータス チェック、コメントなど)。ボットが提供する指示に従ってください。 CLA を使用するすべてのリポジトリでこれを 1 回行うだけで済みます。
新機能のテストも PR としてテスト スイート リポジトリに送信する必要があります。
このプロジェクトはマイクロソフトのオープンソース行動規範を採用しています。詳細については、行動規範に関する FAQ を参照するか、追加の質問やコメントがあれば [email protected] までお問い合わせください。
このプロジェクトには、プロジェクト、製品、またはサービスの商標またはロゴが含まれている場合があります。 Microsoft の商標またはロゴの許可された使用には、Microsoft の商標およびブランド ガイドラインが適用され、それに従わなければなりません。このプロジェクトの修正バージョンで Microsoft の商標またはロゴを使用することは、混乱を引き起こしたり、Microsoft のスポンサーであることを暗示したりしてはなりません。第三者の商標またはロゴの使用には、それらの第三者のポリシーが適用されます。
DirectXTex ライブラリは、Chuck Walbourn の作品であり、Matt Lee、Xin Huang、Craig Peeper、および長年にわたって D3DX ユーティリティ ライブラリを開発した他の多数の Microsoft エンジニアの貢献を受けています。
MemoryStreamOnBlob
の実装について協力してくれた Paul Penson に感謝します。
コードレビューで継続的に協力してくれた Andrew Farrier と Scott Matloff に感謝します。
JPEG/PNG 補助機能の貢献について Park DongHa に感謝します。