Droit d'auteur (c) Microsoft Corporation.
28 octobre 2024
Ce package contient le « DirectX Tool Kit », une collection de classes d'assistance pour l'écriture de code Direct3D 11 C++ pour les applications de plateforme Windows universelle (UWP) pour les applications de bureau Windows 11, Windows 10, Xbox One et Win32 pour Windows 7 Service Pack 1 ou plus tard.
Ce code est conçu pour être construit avec Visual Studio 2019 (16.11), Visual Studio 2022, clang pour Windows v12 ou version ultérieure, ou MinGW 12.2. L’utilisation du SDK de mise à jour Windows 10 mai 2020 (19041) ou version ultérieure est requise pour Visual Studio.
Ces composants sont conçus pour fonctionner sans nécessiter aucun contenu de l'ancien SDK DirectX. Pour plus de détails, consultez Où se trouve le SDK DirectX ?.
Inc
Audio.h - API audio de bas niveau utilisant XAudio2 (en-tête public DirectXTK for Audio)
BufferHelpers.h - Aides C++ pour créer des ressources D3D à partir des 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 assistants C++ pour la programmation D3D
Effects.h - ensemble de shaders intégrés pour les tâches de rendu courantes
GamePad.h - assistant de contrôleur de manette de jeu utilisant XInput, Windows.Gaming.Input ou GameInput
GeographicPrimitive.h - dessine des formes de base telles que des cubes et des sphères
GraphicsMemory.h - assistant pour gérer l'allocation de mémoire graphique dynamique
Keyboard.h - assistant de suivi de l'état du clavier
Model.h - dessine des maillages chargés à partir de fichiers .CMO, .SDKMESH ou .VBO
Mouse.h - assistant de souris
PostProcess.h - ensemble de shaders intégrés pour les opérations de post-traitement courantes
PrimitiveBatch.h - moyen simple et efficace de dessiner des primitives utilisateur
ScreenGrab.h - économiseur de capture d'écran léger
SimpleMath.h - wrapper C++ simplifié pour DirectXMath
SpriteBatch.h - rendu de sprite 2D simple et efficace
SpriteFont.h - rendu de texte basé sur bitmap
VertexTypes.h - structures pour les formats de données de sommet couramment utilisés
WICTextureLoader.h - Chargeur de texture de fichier image basé sur WIC
XboxDDSTextureLoader.h - Variante d'applications exclusives Xbox One de DDSTextureLoader
Fichiers d'en-tête publics (dans l'espace de noms DirectX C++) :
Src
Fichiers sources 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 créer des banques d'ondes de style XACT à utiliser avec la classe WaveBank de DirectXTK for Audio
build
Contient des fichiers YAML pour les pipelines de build ainsi que divers fichiers et scripts de build.
La documentation est disponible sur le wiki GitHub.
Tout le contenu et le code source de ce package sont soumis aux termes de la licence MIT.
Pour la dernière version de DirectXTK, les rapports de bogues, etc., veuillez visiter le site du projet sur GitHub.
POUR LES CONSEILS DE SÉCURITÉ, consultez GitHub.
Pour un historique complet des modifications, consultez CHANGELOG.md.
À partir de la version de février 2023, l'implémentation de la classe Mouse du mouvement relatif de la souris a été mise à jour pour accumuler les modifications entre les appels à GetState
. Par défaut, chaque fois que vous appelez GetState
les deltas sont réinitialisés, ce qui fonctionne pour les scénarios dans lesquels vous utilisez un mouvement relatif mais n'appelez la méthode qu'une fois par image. Si vous l'appelez plus d'une fois par image, ajoutez un appel explicite à EndOfInputFrame
pour utiliser à la place un modèle de réinitialisation explicite.
Depuis la version de septembre 2022, la bibliothèque utilise des espaces de noms en ligne C++11 pour différents types portant les mêmes noms dans les versions DirectX 11 et DirectX 12 du DirectX Tool Kit . Cela fournit un nom unique au lien tel que DirectX::DX11::SpriteBatch
qui apparaîtra dans les messages de sortie de l'éditeur de liens. Cependant, dans la plupart des cas d'utilisation, il n'est pas nécessaire d'ajouter une résolution explicite de l'espace de noms DX11
dans le code client.
À partir de la version de juillet 2022, le paramètre bool forceSRGB
pour les fonctions DDSTextureLoader Ex
est désormais un paramètre d'indicateur de masque de bits enum typé DDS_LOADER_FLAGS
. Cela peut avoir un impact sur le code client. Remplacez true
par DDS_LOADER_FORCE_SRGB
et false
par DDS_LOADER_DEFAULT
.
Depuis la version d'octobre 2021, DGSLEffect ne prend plus directement en charge le skinning. Utilisez plutôt SkinnedDGSLEffect qui est dérivé de DGSLEffect.
À partir de la version de juin 2020, cette bibliothèque utilise des indicateurs de masque de bits enum typés conformément à la recommandation de la section 17.5.2.1.3 Bitmask types de la norme C++ . Cela peut avoir des conséquences sur le code client :
Vous ne pouvez pas transmettre le littéral 0
comme valeur de vos indicateurs. Au lieu de cela, vous devez utiliser la valeur d'énumération par défaut appropriée : AudioEngine_Default
, SoundEffectInstance_Default
, ModelLoader_Clockwise
ou WIC_LOADER_DEFAULT
.
Utilisez le type enum au lieu de DWORD
si vous créez des valeurs d'indicateurs localement avec des opérations de masque de bits. 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. Leur construction nécessite l'installation de l'ensemble d'outils ARM64.
Pour le développement ARM64/AArch64, le compilateur VS 2022 est fortement recommandé par rapport à l'ensemble d'outils VS 2019. Le SDK Windows (26100 ou version ultérieure) n'est pas compatible avec VS 2019 pour le développement Win32 sur ARM64. Notez que la plateforme ARM32/AArch32 est obsolète .
Lors de l'utilisation de clang/LLVM pour la plate-forme ARM64/AArch64, le SDK Windows 11 (22000) ou version ultérieure est requis.
Le script CompileShaders.cmd
doit avoir des fins de ligne de style Windows (CRLF). S'il est modifié en fins de ligne de style Linux (LF), il peut ne pas parvenir à créer tous les shaders requis.
La prise en charge de DirectX 11 par Xbox One nécessite l'ancien Xbox One XDK. Consultez les versions de février 2023 ou antérieures de DirectX Tool Kit pour connaître les fichiers de projet requis.
Depuis la version d'octobre 2024, l'outil de ligne de commande xwbtool prend également en charge les options longues de style GNU à l'aide de --
. Tous les commutateurs existants continuent de fonctionner. MakeSpriteFont prend en charge uniquement --version
et --help
pour les paramètres de style POSIX.
Pour toute question, envisagez d'utiliser Stack Overflow avec la balise directxtk ou le serveur Discord DirectX dans le canal dx9-dx11-developers .
Pour les rapports de bogues et les demandes de fonctionnalités, veuillez utiliser les problèmes GitHub pour ce projet.
Ce projet accueille les contributions et suggestions. La plupart des contributions nécessitent que vous acceptiez un contrat de licence de contributeur (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez effectivement, le droit d'utiliser votre contribution. Pour plus de détails, visitez https://cla.opensource.microsoft.com.
Lorsque vous soumettez une pull request, un robot CLA déterminera automatiquement si vous devez fournir un CLA et décorera le PR de manière appropriée (par exemple, vérification du statut, commentaire). Suivez simplement les instructions fournies par le bot. Vous n’aurez besoin de le faire qu’une seule fois pour tous les dépôts utilisant notre CLA.
Les tests pour les nouvelles fonctionnalités doivent également être soumis sous forme de PR au référentiel Test Suite.
Ce projet a adopté le code de conduite Microsoft Open Source. Pour plus d’informations, consultez la FAQ sur le code de conduite ou contactez [email protected] pour toute question ou commentaire supplémentaire.
Ce projet peut contenir des marques ou des logos pour des projets, des produits ou des services. L'utilisation autorisée des marques ou logos Microsoft est soumise et doit respecter les directives relatives aux marques et aux marques de Microsoft. L'utilisation des marques ou logos Microsoft dans les versions modifiées de ce projet ne doit pas prêter à confusion ni impliquer le parrainage de Microsoft. Toute utilisation de marques ou de logos tiers est soumise aux politiques de ces tiers.
Le kit d'outils DirectX est l'œuvre de Shawn Hargreaves et Chuck Walbourn, avec les 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 packages NuGet pour DirectX Tool Kit.
Merci à Roberto Sonnino pour son aide avec le CMO
, le rendu DGSL et l'animation du VS Starter Kit.
Merci à Pete Lewis et Justin Saunders pour l'implémentation des shaders à mappage normal et PBR.
Merci à Andrew Farrier et Scott Matloff pour leur aide continue dans la révision du code.