http://go.microsoft.com/fwlink/?LinkId=248926
Hak Cipta (c) Microsoft Corporation.
28 Oktober 2024
Paket ini berisi DirectXTex, pustaka sumber bersama untuk membaca dan menulis file .DDS
, dan melakukan berbagai operasi pemrosesan konten tekstur termasuk mengubah ukuran, konversi format, pembuatan peta mip, kompresi blok untuk sumber daya tekstur runtime Direct3D, dan peta ketinggian ke normal- konversi peta. Pustaka ini menggunakan API Windows Image Component (WIC). Ini juga mencakup pembaca dan penulis .TGA
dan .HDR
karena format file gambar ini biasanya digunakan untuk alur pemrosesan konten tekstur, tetapi saat ini tidak didukung oleh codec WIC bawaan.
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. Itu juga dapat dibangun untuk Subsistem Windows untuk Linux menggunakan GCC 11 atau lebih baru.
Komponen-komponen ini dirancang untuk berfungsi tanpa memerlukan konten apa pun dari DirectX SDK lama. Untuk detailnya, lihat Di mana DirectX SDK?.
DirectXTex
Mayoritas file header di sini ditujukan untuk implementasi internal perpustakaan saja (
BC.h
,BCDirectCompute.h
,DDS.h
,DirectXTexP.h
, dll.). HanyaDirectXTex.h
danDirectXTex.inl
yang dimaksudkan sebagai header 'publik' untuk perpustakaan.
Auxiliary
Common
Texconv
Sampel DirectXTex ini merupakan implementasi utilitas tekstur baris perintah texconv dari DirectX SDK yang menggunakan DirectXTex, bukan D3DX.
Ini mendukung argumen yang sama dengan utilitas DirectX SDK warisan Alat Konversi Tekstur Diperpanjang ( texconvex.exe
). Perbedaan utamanya adalah argumen -10
dan -11
tidak berlaku dan nama filter ( POINT
, LINEAR
, CUBIC
, FANT
atau BOX
, TRIANGLE
, *_DITHER
, *_DITHER_DIFFUSION
). Ini juga termasuk dukungan untuk format bitmap JPEG XR (HD Photo).
Texassemble
Texdiag
DDSView
DDSTextureLoader
ScreenGrab
WICTextureLoader
DDSTextureLoader11, ScreenGrab11, dan WICTextureLoader11 adalah versi 'berdiri sendiri' dari modul yang sama yang disediakan dalam DirectX Tool Kit untuk DX11
DDSTextureLoader12, ScreenGrab12, dan WICTextureLoader12 adalah versi 'berdiri sendiri' dari modul yang sama yang disediakan dalam DirectX Tool Kit untuk DX12.
build
Dokumentasi tersedia di wiki GitHub.
Semua konten dan kode sumber untuk paket ini tunduk pada ketentuan Lisensi MIT.
Untuk DirectXTex 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 Juli 2022, parameter bool forceSRGB
untuk fungsi CreateTextureEx dan CreateShaderResourceViewEx kini menjadi parameter flag enum bitmask yang diketik CREATETEX_FLAGS
. Ini mungkin memiliki dampak perubahan besar pada kode klien. Ganti true
dengan CREATETEX_FORCE_SRGB
dan false
dengan CREATETEX_DEFAULT
.
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 konsisten dengan penggunaan makro DEFINE_ENUM_FLAG_OPERATORS
oleh Direct3D 12. Hal ini mungkin berdampak besar pada perubahan kode klien:
Anda tidak dapat meneruskan literal 0
sebagai nilai bendera Anda. Sebaliknya Anda harus menggunakan nilai enum default yang sesuai: CP_FLAGS_NONE
, DDS_FLAGS_NONE
, WIC_FLAGS_NONE
, TEX_FR_ROTATE0
, TEX_FILTER_DEFAULT
, TEX_FILTER_DEFAULT
, TEX_FILTER_DEFAULT
, CNMAP_DEFAULT
, atau CNMAP_DEFAULT
.
Gunakan tipe enum alih-alih DWORD
jika membangun nilai flag secara lokal dengan operasi bitmask. Misalnya, DDS_FLAGS flags = DDS_FLAGS_NONE; if (...) flags |= DDS_FLAGS_EXPAND_LUMINANCE;
Jika beberapa bendera tumpang tindih, Anda dapat menggunakan |
untuk menggabungkan tipe yang relevan: mode filter TEX_FILTER_FLAGS
digabungkan dengan WIC_FLAGS
, flag sRGB TEX_FILTER_FLAGS
digabungkan dengan TEX_PMALPHA_FLAGS
atau TEX_COMPRESS_FLAGS
. Tidak ada operator bitwise lain yang ditentukan. Misalnya, WIC_FLAGS wicFlags = WIC_FLAGS_NONE | TEX_FILTER_CUBIC;
WICTextureLoader tidak dapat memuat file .TGA
atau .HDR
kecuali sistem memiliki codec WIC pihak ketiga yang diinstal. Anda harus menggunakan perpustakaan DirectXTex untuk dukungan format file TGA/HDR tanpa bergantung pada codec WIC tambahan.
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.
Pada rilis Oktober 2024, alat baris perintah juga mendukung opsi panjang gaya GNU menggunakan --
. Semua sakelar yang ada tetap berfungsi, namun beberapa opsi -
kini tidak digunakan lagi berdasarkan tabel ini:
perakitan teks | tekskonv | teksdiag | |||
---|---|---|---|---|---|
-peta nada | --peta nada | -badtail | --ekor buruk | -badtail | --ekor buruk |
-bgwarna | --gif-bg-warna | -memperbaikibc4x4 | --memperbaiki-bc-4x4 | -abaikan | --abaikan-mips |
-kecoh | --kecoh | -abaikan | --abaikan-mips | -permisif | --permisif |
-stripmips | --strip-mips | -kebalikan | --membalikkan-y | -targetx | --target-x |
-jaga cakupan | --jaga-cakupan | ||||
-permisif | --permisif | ||||
-rekonstruksi | --rekonstruksi-z | ||||
-memutar warna | --putar-warna | ||||
-proc tunggal | --proc-tunggal | ||||
-kecoh | --kecoh | ||||
-tgazeroalpha | --tga-nol-alpha | ||||
-waktu | --waktu | ||||
-peta nada | --peta nada | ||||
-tanpa kerugian | --wic-tanpa kerugian | ||||
-wicmulti | --wic-multiframe | ||||
-x2bias | --x2-bias |
Untuk pertanyaan, pertimbangkan untuk menggunakan Stack Overflow dengan tag directxtk , atau DirectX Discord Server di saluran dx12-developers atau 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.
Perpustakaan DirectXTex adalah karya Chuck Walbourn, dengan kontribusi dari Matt Lee, Xin Huang, Craig Peeper, dan banyak insinyur Microsoft lainnya yang mengembangkan perpustakaan utilitas D3DX selama bertahun-tahun.
Terima kasih kepada Paul Penson atas bantuannya dalam penerapan MemoryStreamOnBlob
.
Terima kasih kepada Andrew Farrier dan Scott Matloff atas bantuan berkelanjutan mereka dalam peninjauan kode.
Terima kasih kepada Park DongHa atas kontribusinya pada fungsi tambahan JPEG/PNG.