Directxtk
http://go.microsoft.com/fwlink/?LinkId=248929 Droit d'auteur (c) Microsoft Corporation. Ce paquet contient le "DirectX Tool Kit", une collection de classes...
Choisir une liste...

Kit d'outils DirectX pour DirectX 11
http://go.microsoft.com/fwlink/?LinkId=248929
Droit d'auteur (c) Microsoft Corporation.
27 octobre 2025
Ce paquet contient le "DirectX Tool Kit", une collection de classes d'aide pour l'écriture de code Direct3D 11 C++ pour les applications de bureau Win32 pour Windows 8.1 ou versions ultérieures, Xbox One et Universal Windows Platform (UWP) pour Windows 10 et Windows 11.
Ce code est conçu pour être construit avec Visual Studio 2019 (16.11), Visual Studio 2022, clang pour Windows v12 ou plus tard, ou MinGW 12.2. Utilisation de Windows 10 mai 2020 Mise à jour SDK (19041) ou plus tard est nécessaire pour Visual Studio.
Ces composants sont conçus pour fonctionner sans nécessiter de contenu de l'ancien SDK DirectX. Pour plus de détails, voirWhere is the DirectX SDK?.
Présentation du répertoire
-
Inc\-
Fichiers en-têtes publics (dans l'espace de noms DirectX C++):
- Audio.h - API audio de bas niveau utilisant XAudio2 (DirectXTK pour l'en-tête public audio)
- BufferHelpers.h - Aides C++ pour la création de ressources D3D à partir de données CPU
- CommonStates.h - usine fournissant des objets d'état D3D couramment utilisés
- DDSTextureLoader.h - chargeur de texture de fichier DDS léger
- DirectXHelpers.h - divers aides C++ pour la programmation D3D
- Effets.h - ensemble de shaders intégrés pour des tâches de rendu communes
- GamePad.h - aide de contrôleur de gamepad en utilisant XInput, Windows. Jeu. Entrée ou entrée de jeu
- GéométriePrimitive.h - dessine des formes de base comme les cubes et les sphères
- GraphicsMemory.h - aide à gérer l'allocation de mémoire graphique dynamique
- Keyboard.h - aide au suivi de l'état du clavier
- Model.h - dessine les mailles chargées à partir de fichiers .CMO, .SDKMESH ou .VBO
- Souris.h - aide à la souris
- PostProcess.h - ensemble de shaders intégrés pour les opérations communes de post-traitement
- PrimitifBatch.h - une façon simple et efficace de dessiner les primitifs utilisateurs
- ScreenGrab.h - screen saver léger
- SimpleMath.h - Enveloppe C++ simplifiée pour DirectXMath
- SpriteBatch.h - rendu 2D simple et efficace
- SpriteFont.h - rendu texte basé sur bitmap
- VertexTypes.h - structures pour les formats de données vertex couramment utilisés
- WICTextureLoader.h - Chargeur de texture de fichier d'image basé sur WIC
- XboxDDSTextureLoader.h - Xbox Une variante exclusive d'applications de DDSTextureLoader
-
-
Src\- Fichiers source DirectXTK et en-têtes d'implémentation internes
-
Audio\- DirectXTK pour les fichiers sources audio et les en-têtes d'implémentation internes
-
MakeSpriteFont\- Outil de ligne de commande utilisé pour générer des ressources binaires à utiliser avec SpriteFont
-
XWBTool\- Outil de ligne de commande pour construire des banques d'onde de style XACT pour une utilisation avec DirectXTK pour la classe WaveBank Audio
-
build\- Contient divers fichiers de compilation et scripts.
Documentation
La documentation est disponible surGitHub wiki.
Avis
Tout le contenu et le code source de ce paquet sont soumis aux conditions de laMIT License.
Pour la dernière version de DirectXTK, rapports de bogue, etc. veuillez visiter le site du projet surGitHub.
Notes de sortie
POUR LES CONSEILS DE SÉCURITÉ, voirGitHub.
Pour un historique complet du changement, voirCHANGELOG.md.
-
Les projets CMake nécessitent 3.21 ou plus tard. Les utilisateurs de VS 2019 devront installer une version autonome de CMake 3.21 et l'ajouter à leur PATH.
-
Depuis la sortie de mars 2025, le support Windows 7 et Windows 8.0 a été retiré. PourDirectX ToolKit pour l'audiocela signifie que
DirectXTKAudio_Desktop_*_Win7a été enlevé, etDirectXTKAudio_Desktop_*_Win8a été intégré dans leDirectXTK_Desktop_*vcxproj qui utilise XAudio 2.8 pour la compatibilité Windows 8.1.-
Supprimer toute référence ou utilisation de
DirectXTKAudio_Desktop_*_Win8.vcxprojouDirectXTKAudio_Desktop_*_Win7. Si vous utilisezDirectXTK_Desktop_*.vcxprojvous utiliserez XAudio 2.8 comme avant. Le code client devra être construit avec_WIN32_WINNT=0x0603. -
Avec
directxtk_desktop_2019Le paquet NuGet, vous utiliserez XAudio 2.8 et n'utiliserez plus le paquet XAudio2Redist NuGet. Le code client sera construit avec_WIN32_WINNT=0x0603. -
Si vous souhaitez utiliser XAudio2Redist avec Windows 8.1, le projet CMake prend en charge ceci avec l'option build
BUILD_XAUDIO_REDIST. L'option de construction de CMakeBUILD_XAUDIO_WIN7a été renommé. -
Lors de l'utilisation de XAudio 2.8 pour Windows 8.1, il n'y a pas de support de format xWMA. Ceci est disponible en utilisant XAudio 2.9 ou XAudio2Redist.
-
-
À partir de la sortie de février 2023, l'implémentation de la classe de souris du mouvement relatif de souris a été mise à jour pour accumuler les changements entre les appels à
GetState. Par défaut, chaque fois que vous appelezGetStateles deltas sont réinitialisés ce qui fonctionne pour des scénarios où vous utilisez un mouvement relatif mais appelez seulement la méthode une fois par image. Si vous l'appelez plus d'une fois par image, ajoutez un appel explicite àEndOfInputFrameutiliser plutôt un modèle de réinitialisation explicite. -
À partir de la sortie de septembre 2022, la bibliothèque utilise des espaces de noms en ligne C++11 pour différents types ayant les mêmes noms dans la version DirectX 11 et DirectX 12Kit d'outils DirectX. Ceci fournit un nom link-unique tel que
DirectX::DX11::SpriteBatchqui apparaîtra dans les messages de sortie du lien. Dans la plupart des cas, cependant, il n'est pas nécessaire d'ajouter explicitementDX11résolution de l'espace de noms dans le code client. -
À partir de la sortie de juillet 2022
bool forceSRGBparamètre pour DDSTextureLoaderExfonctions est maintenant unDDS_LOADER_FLAGSdactylographié enum bitmask parameter flag. Cela peut avoir unecasser le changementimpact sur le code client. RemplacertrueavecDDS_LOADER_FORCE_SRGBetfalseavecDDS_LOADER_DEFAULT. -
À partir de la sortie d'octobre 2021, le DGSLEffet ne prend plus directement en charge la peau. Au lieu de cela, utiliserEffet sur la peauDGSLqui est dérivé de DGSLEffect.
-
À partir de la sortie de juin 2020, cette bibliothèque utilisetyped enum bitmask flagsconformément à la recommandationC++ Normerubrique17.5.2.1.3 Types de bitmasques. Cela peut avoircasser le changementimpacts sur le code client:
-
Vous ne pouvez pas passer
0littéralement comme valeur de vos drapeaux. Vous devez plutôt utiliser la valeur d'enum par défaut appropriée:AudioEngine_Default,SoundEffectInstance_Default,ModelLoader_ClockwiseouWIC_LOADER_DEFAULT. -
Utilisez le type d'enum au lieu de
DWORDsi vous construisez localement des valeurs de drapeaux avec des opérations bitmask. Par exemple,WIC_LOADER_FLAGS flags = WIC_LOADER_DEFAULT; if (...) flags |= WIC_LOADER_FORCE_SRGB;
-
-
Les projets UWP et le projet de bureau classique Win10 incluent des configurations pour la plateforme ARM64. Pour les construire, il faut installer l'ensemble d'outils ARM64.
-
Pour le développement ARM64/AArch64, le compilateur VS 2022 est fortement recommandé par rapport au jeu d'outils VS 2019. Le SDK Windows (26100 ou plus) n'est pas compatible avec VS 2019 pour Win32 sur le développement ARM64.Notez que la plate-forme ARM32/AArchi32 estdeprecated.
-
Lorsque vous utilisez clang/LLVM pour la plate-forme ARM64/AArch64, le SDK Windows 11 (22000) ou plus tard est nécessaire.
-
Les
CompileShaders.cmdscript doit avoir Windows style (CRLF) fin de ligne. Si elle est changée en fin de ligne de style Linux (LF), elle peut ne pas construire tous les shaders requis. -
Depuis la version d'octobre 2024, l'outil en ligne de commande xwbtool prend également en charge les options longues de style GNU en utilisant
--. Tous les commutateurs existants continuent de fonctionner. MakeSpriteFont supporte uniquement--versionet--helppour les paramètres de style POSIX. -
Le support Xbox One pour DirectX 11 nécessite le XDK Xbox One. Voir février 2023 ou versions antérieuresKit d'outils DirectXpour les fichiers de projet MSBuild requis. Il peut également être construit en utilisant le projet CMake actuel d'unDemande de commande du développeur XDK Xbox Oneavec l'ajout de CMake 3.20 ou plus tard sur le chemin par
x64-Debug-Durangooux64-Release-DurangoFaites préréglage.
Appui
Pour les questions, envisager d'utiliserStack Overflowavecdirectxtkune étiquette, ouDirectX Discord Serverdans lesdx9-dx11-développeursouentrée-et-audiochaînes.
Pour les rapports de bogues et les requêtes de fonctionnalités, veuillez utiliser GitHubissuespour ce projet.
Contribution
Ce projet accueille favorablement les contributions et les suggestions. La plupart des contributions vous obligent à accepter un accord de licence de cotisant (CLA) déclarant que vous avez le droit de nous accorder et de faire réellement le droit d'utiliser votre contribution. Pour plus de détails, visitez https://cla.opensource.microsoft.com.
Lorsque vous soumettez une demande de tirage, un robot CLA déterminera automatiquement si vous devez fournir un CLA et décorer le PR de façon appropriée (p. ex., vérification de l'état, commentaires). Suivez simplement les instructions fournies par le robot. Vous n'aurez besoin de le faire qu'une fois sur toutes les repos en utilisant notre CLA.
Les essais pour les nouvelles caractéristiques devraient également être soumis en tant que PR à laTest Suitedépôt.
Des informations sur le mode de codage peuvent être trouvées surGitHub.
Code de conduite
Ce projet a adopté leMicrosoft Open Source Code of Conduct. Pour plus d'informations, voirCode of Conduct FAQou contact[email protected]avec toutes questions ou commentaires supplémentaires.
Marques
Ce projet peut contenir des marques de commerce ou des logos pour des projets, des produits ou des services. L'utilisation autorisée de marques ou logos Microsoft est soumise et doit suivreMicrosoft's Trademark & Brand Guidelines. L'utilisation de marques de commerce ou de logos Microsoft dans les versions modifiées de ce projet ne doit pas causer de confusion ou impliquer le parrainage de Microsoft. Toute utilisation de marques ou de logos tiers est soumise aux politiques de ces tiers.
Crédits
LesKit d'outils DirectXest le travail de Shawn Hargreaves et Chuck Walbourn, avec des contributions d'Aaron Rodriguez Hernandez et Dani Roman.
Merci à Shanon Drone pour le format de fichier SDKMESH.
Merci à Adrian Tsai pour la mise en œuvre de la sphère géodésique.
Merci à Garrett Serack pour son aide dans la création des paquets NuGet pour DirectX Tool Kit.
Merci à Roberto Sonnino pour son aideCMO, rendu DGSL, et l'animation VS Starter Kit.
Merci à Pete Lewis et Justin Saunders pour l'implémentation des shaders normaux et PBR.
Merci à Andrew Farrier et Scott Matloff pour leur aide continue dans les revues de code.