Hak Cipta (c) Microsoft Corporation.
28 Oktober 2024
Paket ini berisi "DirectX Tool Kit", kumpulan kelas pembantu untuk menulis kode Direct3D 11 C++ untuk aplikasi Universal Windows Platform (UWP) untuk aplikasi desktop Windows 11, Windows 10, Xbox One, dan Win32 untuk Windows 7 Service Pack 1 atau Nanti.
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
Audio.h - API audio tingkat rendah menggunakan XAudio2 (header publik DirectXTK untuk Audio)
BufferHelpers.h - Pembantu C++ untuk membuat sumber daya D3D dari data CPU
CommonStates.h - pabrik yang menyediakan objek status D3D yang umum digunakan
DDSTextureLoader.h - pemuat tekstur file DDS yang ringan
DirectXHelpers.h - pembantu C++ lain-lain untuk pemrograman D3D
Effects.h - kumpulan shader bawaan untuk tugas rendering umum
GamePad.h - pembantu pengontrol gamepad menggunakan XInput, Windows.Gaming.Input, atau GameInput
GeometricPrimitive.h - menggambar bentuk dasar seperti kubus dan bola
GraphicsMemory.h - pembantu untuk mengelola alokasi memori grafis dinamis
Keyboard.h - pembantu pelacakan status keyboard
Model.h - menggambar jerat yang dimuat dari file .CMO, .SDKMESH, atau .VBO
Mouse.h - pembantu tikus
PostProcess.h - kumpulan shader bawaan untuk operasi pasca-pemrosesan umum
PrimitiveBatch.h - cara sederhana dan efisien untuk menggambar primitif pengguna
ScreenGrab.h - penghemat cuplikan layar yang ringan
SimpleMath.h - pembungkus C++ yang disederhanakan untuk DirectXMath
SpriteBatch.h - rendering sprite 2D yang sederhana & efisien
SpriteFont.h - rendering teks berbasis bitmap
VertexTypes.h - struktur untuk format data vertex yang umum digunakan
WICTextureLoader.h - Pemuat tekstur file gambar berbasis WIC
XboxDDSTextureLoader.h - Varian aplikasi eksklusif Xbox One dari DDSTextureLoader
File Header Publik (dalam namespace DirectX C++):
Src
File sumber DirectXTK dan header implementasi internal
Audio
DirectXTK untuk file sumber Audio dan header implementasi internal
MakeSpriteFont
Alat baris perintah yang digunakan untuk menghasilkan sumber daya biner untuk digunakan dengan SpriteFont
XWBTool
Alat baris perintah untuk membuat bank gelombang gaya XACT untuk digunakan dengan DirectXTK untuk kelas WaveBank Audio
build
Berisi file YAML untuk pipeline build bersama dengan beberapa file dan skrip build lainnya.
Dokumentasi tersedia di wiki GitHub.
Semua konten dan kode sumber untuk paket ini tunduk pada ketentuan Lisensi MIT.
Untuk DirectXTK versi terbaru, laporan bug, dll. silakan kunjungi situs proyek di GitHub.
UNTUK SARAN KEAMANAN, lihat GitHub.
Untuk riwayat perubahan selengkapnya, lihat CHANGELOG.md.
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::DX11::SpriteBatch
yang akan muncul di pesan keluaran tautan. Namun, dalam sebagian besar kasus penggunaan, tidak perlu menambahkan resolusi namespace DX11
eksplisit dalam kode klien.
Mulai rilis Juli 2022, parameter bool forceSRGB
untuk fungsi DDSTextureLoader Ex
sekarang menjadi parameter flag enum bitmask yang diketik DDS_LOADER_FLAGS
. Ini mungkin memiliki dampak perubahan besar pada kode klien. Ganti true
dengan DDS_LOADER_FORCE_SRGB
dan false
dengan DDS_LOADER_DEFAULT
.
Mulai rilis Oktober 2021, DGSLEffect tidak lagi mendukung skinning secara langsung. Sebagai gantinya, gunakan SkinnedDGSLEffect yang berasal dari DGSLEffect.
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
, 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), ia mungkin gagal membangun semua shader yang diperlukan.
Dukungan Xbox One untuk DirectX 11 memerlukan Xbox One XDK lama. Lihat rilis DirectX Tool Kit Februari 2023 atau sebelumnya untuk file proyek yang diperlukan.
Pada rilis Oktober 2024, alat baris perintah xwbtool juga mendukung opsi panjang gaya GNU menggunakan --
. Semua saklar yang ada tetap berfungsi. MakeSpriteFont hanya mendukung --version
dan --help
untuk parameter gaya POSIX.
Jika ada pertanyaan, pertimbangkan untuk menggunakan Stack Overflow dengan tag directxtk , atau DirectX Discord Server di saluran dx9-dx11-developers .
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 adalah karya Shawn Hargreaves dan Chuck Walbourn, dengan kontribusi dari Aaron Rodriguez Hernandez dan Dani Roman.
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 Roberto Sonnino atas bantuannya dalam rendering CMO
, DGSL, dan animasi VS Starter Kit.
Terima kasih kepada Pete Lewis dan Justin Saunders atas penerapan shader yang dipetakan normal dan PBR.
Terima kasih kepada Andrew Farrier dan Scott Matloff atas bantuan berkelanjutan mereka dalam peninjauan kode.