http://go.microsoft.com/fwlink/?LinkID=615561
Hak Cipta (c) Microsoft Corporation.
28 Oktober 2024
Paket ini berisi "DirectX Tool Kit", kumpulan kelas pembantu untuk menulis kode Direct3D 12 C++ untuk aplikasi Universal Windows Platform (UWP) untuk Windows 11 dan Windows 10, judul game untuk Xbox Series X|S dan Xbox One, dan Win32 aplikasi desktop untuk Windows 11 dan Windows 10.
Kode ini dirancang untuk dibuat dengan Visual Studio 2019 (16.11), Visual Studio 2022, dentang untuk Windows v12 atau lebih baru, atau MinGW 12.2. Penggunaan SDK Pembaruan Windows 10 Mei 2020 (19041) atau lebih baru diperlukan untuk Visual Studio.
Komponen-komponen ini dirancang untuk berfungsi tanpa memerlukan konten apa pun dari DirectX SDK lama. Untuk detailnya, lihat Di mana DirectX SDK?.
Inc
File Header Publik (dalam namespace DirectX C++):
Src
Audio
build
MakeSpriteFont dan XWBTool dapat ditemukan di DirectX Tool Kit untuk DirectX 11
Dokumentasi tersedia di wiki GitHub.
Semua konten dan kode sumber untuk paket ini tunduk pada ketentuan Lisensi MIT.
Untuk versi terbaru DirectXTK12, laporan bug, dll. silakan kunjungi situs proyek di GitHub.
Tidak ada dukungan untuk shader efek Visual Studio Directed Graph Shader Language (DGSL) (yaitu DGSLEffect ). File CMO dimuat menggunakan materi BasicEffect atau SkinnedEffect.
VertexTypes tidak menyertakan VertexPositionNormalTangentColorTexture atau VertexPositionNormalTangentColorTextureSkinning yang dimaksudkan untuk digunakan dengan pipeline DGSL.
DirectX Tool Kit untuk DirectX 11 mendukung Fitur Level 9.x, sedangkan DirectX 12 memerlukan Direct3D Feature Level 11.0. Tidak ada driver DirectX 12 yang diharapkan untuk perangkat dengan tingkat fitur lebih rendah.
Perpustakaan berasumsi bahwa ia dibuat untuk Windows 10 (alias _WIN32_WINNT=0x0A00
) sehingga menggunakan XAudio 2.9 dan WIC2 serta DirectX 12.
DirectX Tool Kit untuk Audio, GamePad, Keyboard, Mouse, dan SimpleMath identik dengan versi DirectX 11.
UNTUK SARAN KEAMANAN, lihat GitHub.
Untuk riwayat perubahan selengkapnya, lihat CHANGELOG.md.
Pada rilis Juni 2024, parameter default initialState
untuk fungsi CreateUploadBuffer
di BufferHelpers telah dihapus. Berdasarkan lapisan validasi DirectX 12, satu-satunya status awal yang valid untuk buffer unggahan adalah D3D12_RESOURCE_STATE_GENERIC_READ
.
Mulai rilis Februari 2023, implementasi kelas Mouse untuk pergerakan mouse relatif diperbarui untuk mengakumulasi perubahan di antara panggilan ke GetState
. Secara default, setiap kali Anda memanggil GetState
delta disetel ulang yang berfungsi untuk skenario di mana Anda menggunakan pergerakan relatif tetapi hanya memanggil metode ini satu kali per frame. Jika Anda memanggilnya lebih dari sekali per frame, tambahkan panggilan eksplisit ke EndOfInputFrame
untuk menggunakan model reset eksplisit.
Pada rilis September 2022, perpustakaan menggunakan namespace inline C++11 untuk tipe berbeda yang memiliki nama yang sama di DirectX Tool Kit versi DirectX 11 dan DirectX 12. Ini memberikan nama unik tautan seperti DirectX::DX12::SpriteBatch
yang akan muncul di pesan keluaran tautan. Namun, dalam sebagian besar kasus penggunaan, tidak perlu menambahkan resolusi namespace DX12
eksplisit dalam kode klien.
Dimulai dengan rilis Juni 2021, perpustakaan ini membuat shader HLSL dengan Shader Model 6 melalui DXC. Lihat halaman wiki ini untuk informasi lebih lanjut. Proyek Microsoft SDK selalu menggunakan Shader Model 6.
Mulai rilis Juni 2020, pustaka ini menggunakan tanda bitmask enum yang diketik sesuai rekomendasi Standar C++ bagian 17.5.2.1.3 Jenis Bitmask . Hal ini mungkin berdampak besar pada perubahan kode klien:
Anda tidak dapat meneruskan literal 0
sebagai nilai bendera Anda. Sebagai gantinya, Anda harus menggunakan nilai enum default yang sesuai: AudioEngine_Default
, SoundEffectInstance_Default
, ModelLoader_Clockwise
, DDS_LOADER_DEFAULT
, atau WIC_LOADER_DEFAULT
.
Gunakan tipe enum alih-alih DWORD
jika membangun nilai flag secara lokal dengan operasi bitmask. Misalnya, WIC_LOADER_FLAGS flags = WIC_LOADER_DEFAULT; if (...) flags |= WIC_LOADER_FORCE_SRGB;
Proyek UWP dan proyek desktop klasik Win10 menyertakan konfigurasi untuk platform ARM64. Membangun ini memerlukan instalasi perangkat ARM64.
Untuk pengembangan ARM64/AArch64, kompiler VS 2022 sangat disarankan dibandingkan perangkat VS 2019. Windows SDK (26100 atau lebih baru) tidak kompatibel dengan VS 2019 untuk Win32 pada pengembangan ARM64. Perhatikan bahwa platform ARM32/AArch32 tidak digunakan lagi .
Saat menggunakan clang/LLVM untuk platform ARM64/AArch64, diperlukan Windows 11 SDK (22000) atau lebih baru.
Skrip CompileShaders.cmd
harus memiliki akhiran baris bergaya Windows (CRLF). Jika diubah ke akhiran baris gaya Linux (LF), mungkin gagal membangun semua shader yang diperlukan.
Untuk pertanyaan, pertimbangkan untuk menggunakan Stack Overflow dengan tag directxtk , atau DirectX Discord Server di saluran dx12-developer .
Untuk laporan bug dan permintaan fitur, silakan gunakan masalah GitHub untuk proyek ini.
Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda berhak, dan memang benar, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.opensource.microsoft.com.
Saat Anda mengirimkan permintaan tarik, bot CLA akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghiasi PR dengan tepat (misalnya, pemeriksaan status, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di seluruh repo menggunakan CLA kami.
Pengujian untuk fitur baru juga harus dikirimkan sebagai PR ke repositori Test Suite.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi lebih lanjut, lihat FAQ Pedoman Perilaku atau hubungi [email protected] jika ada pertanyaan atau komentar tambahan.
Proyek ini mungkin berisi merek dagang atau logo untuk proyek, produk, atau layanan. Penggunaan resmi atas merek dagang atau logo Microsoft tunduk dan harus mengikuti Pedoman Merek Dagang & Merek Microsoft. Penggunaan merek dagang atau logo Microsoft dalam versi modifikasi proyek ini tidak boleh menimbulkan kebingungan atau menyiratkan sponsor Microsoft. Segala penggunaan merek dagang atau logo pihak ketiga tunduk pada kebijakan pihak ketiga tersebut.
DirectX Tool Kit untuk DirectX 11 adalah karya Shawn Hargreaves dan Chuck Walbourn, dengan kontribusi dari Aaron Rodriguez Hernandez dan Dani Roman.
DirectX Tool Kit untuk DirectX 12 adalah karya Pete Lewis, Justin Saunders, dan Chuck Walbourn yang sangat didasarkan pada DirectX Tool Kit untuk DirectX 11.
Terima kasih kepada Shanon Drone untuk format file SDKMESH.
Terima kasih kepada Adrian Tsai atas penerapan bidang geodesik.
Terima kasih kepada Garrett Serack atas bantuannya dalam membuat paket NuGet untuk DirectX Tool Kit.
Terima kasih kepada Pete Lewis dan Justin Saunders atas penerapan shader yang dipetakan normal dan PBR.
Terima kasih kepada Travis Johnson atas dukungan mGPU.
Terima kasih kepada Roberto Sonnino atas bantuannya dengan format CMO dan animasi VS Starter Kit.
Terima kasih kepada Richie Meyer atas kontribusinya terhadap memori khusus Xbox PIX dan dukungan peristiwa pelacakan alokasi jenis.
Terima kasih kepada Andrew Farrier dan Scott Matloff atas bantuan berkelanjutan mereka dalam peninjauan kode.