Installation de DirectX pour les développeurs de jeux
Cet article est destiné à répondre à certaines des questions courantes sur le runtime DirectX et à l’aide de DirectSetup pour installer DirectX.
- directX Runtime
- numéro de version DirectX
- bibliothèques DirectX
- installation de DirectX par le programme d’installation du jeu
- petits packages d’installation
- déploiement interne du DirectX Runtime de débogage
Important
Le SDK DirectX hérité est en fin de vie, mais il est toujours disponible pour prendre en charge les anciens jeux, didacticiels et projets. Les nouveaux projets ne doivent pas l’utiliser. L’utilisation du SDK DirectX hérité nécessite l’utilisation de DirectSetup déconseillé pour les composants tels que D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3 et XACT. Pour plus d’informations sur l’état actuel du Kit de développement logiciel (SDK) DirectX, consultez Où se trouve le Kit de développement logiciel (SDK) DirectX ?, et le billet de blog Pas si direct setup.
DirectX Runtime
Le runtime DirectX se compose de composants principaux et de composants facultatifs.
Les composants principaux, tels que Direct3D et DirectInput, font partie du système d’exploitation. Les composants principaux de DirectX 9.0c n’ont pas changé depuis la mise à jour du Kit de développement logiciel (SDK) DirectX Summer 2004 et correspondent à ce qui a été publié avec Microsoft Windows XP SP2, Windows XP Pro x64 Edition et Windows Server 2003 SP1. Windows Vista inclut DirectX 10, qui prend en charge le modèle de pilote d’affichage Windows (WDDM) et Direct3D 10.x. Windows 7 et Windows Vista prennent en charge DirectX 11, qui prend en charge Direct3D 11, Direct2D, DirectWrite, l’appareil de rendu logiciel WARP10 et les niveaux de fonctionnalités 10level9. Pour plus d’informations, consultez API Graphics dans Windows.
Les composants facultatifs sont publiés dans les mises à jour du Kit de développement logiciel (SDK) DirectX, et incluent D3DX, XACT, XAudio2, XINPUT, Managed DirectX et d’autres composants de ce type. De nombreux composants facultatifs sont régulièrement mis à jour pour intégrer les commentaires des clients et exposer de nouvelles fonctionnalités.
Numéro de version DirectX
Le numéro de version DirectX, tel que 9.0c, fait référence uniquement à la version des composants principaux, tels que Direct3D, DirectInput ou DirectSound. Ce nombre ne couvre pas les versions des différents composants facultatifs publiés dans le Kit de développement logiciel (SDK) DirectX, tels que D3DX, XACT, XINPUT, etc.
En règle générale, le numéro de version DirectX n’est pas significatif, sauf en tant que référence rapide aux bits d’exécution principaux. Ce nombre ne doit pas être utilisé pour vérifier si le runtime DirectX correct est déjà installé, car il ne prend pas en compte les composants DirectX facultatifs.
Bibliothèques DirectX
Dans le passé, les composants facultatifs du Kit de développement logiciel (SDK) DirectX, y compris D3DX, ont été publiés en tant que bibliothèques statiques. Toutefois, ces bibliothèques sont désormais publiées en tant que bibliothèques de type dynamique (DLL) en raison de la demande accrue de meilleures pratiques de sécurité. Les DLL autorisent la maintenance du code précédemment publié. Si ces composants ont été déployés en tant que bibliothèques statiques, il n’existe aucun moyen pour Microsoft de résoudre les problèmes de sécurité détectés après la mise en production.
À mesure que les fonctionnalités sont ajoutées ou modifiées aux composants facultatifs, les noms des DLL correspondantes sont également modifiés pour s’assurer qu’aucune régression n’est due aux jeux existants qui utilisent des composants libérés. Les DLL pour chaque composant vivent côte à côte, et les développeurs de jeux peuvent choisir exactement la version DLL utilisée par le jeu en liant à la bibliothèque d’importation correspondante.
Tout en s’assurant que les DLL sont installées sur un système n’est pas aussi simple que la liaison simple à des bibliothèques statiques, certaines modifications ont été apportées au Kit de développement logiciel (SDK) DirectX pour résoudre la douleur du modèle DLL :
- Le redistribuable DirectX peut être configuré pour contenir uniquement les composants dont votre application a besoin pour réduire la distribution et les tailles de média.
- Le dossier redistribuable, Program Files\DirectX SDK\Redist\, now contains a cabinet (.cab) pour chaque composant facultatif possible, vous n’avez donc pas besoin d’explorer un sdk plus ancien pour les trouver.
- L’installation du Kit de développement logiciel (SDK) installe chaque composant facultatif possible.
- Redistribuable DirectX qui contient tous les composants facultatifs est disponible à la fois en tant que programme d’installation web et en tant que package téléchargeable ; pour plus d’informations, consultez le Centre de développement DirectX (DirectX).
Installation de DirectX by the Game’s Installer
Note
Consultez déploiement Direct3D 11 pour les développeurs de jeux.
Voici les meilleures pratiques pour ajouter l’installation de DirectX au programme d’installation d’un jeu :
Terme | Description |
---|---|
installer les composants redistribuables à chaque fois. |
Le processus d’installation d’un jeu doit installer les composants redistribuables DirectX pendant chaque installation unique sans permettre aux utilisateurs de l’annuler. Si vous autorisez la désactivation, certains utilisateurs supposent qu’ils n’en ont pas besoin, et s’ils le font réellement, le jeu ne s’exécute pas. |
Laissez le programme d’installation DirectX vérifier les composants facultatifs. |
Ne supposez pas que les derniers composants facultatifs sont déjà installés sur un système, car Windows Update et Service Packs ne fournissent aucun des composants facultatifs de DirectX. Vous devez installer le runtime DirectX en exécutant dxsetup.exe directement ou en appelant DirectSetup. |
configurer silencieusement. |
Lancez le programme d’installation en mode silencieux afin que les utilisateurs n’ignorent pas accidentellement la mise à jour du runtime DirectX. Pour ce faire, lancez dxsetup.exe avec la commande suivante : ou en appelant DirectSetup et en n’affichant aucune interface utilisateur. |
Combiner les acceptations du CLUF. |
Si vous invitez l’utilisateur à accepter un CLUF, combinez-le avec l’invite d’acceptation du CLUF DirectX lors de l’installation en mode silencieux afin que l’acceptation des CLUF se produise une seule fois. L’invite doit se produire avant d’installer quoi que ce soit afin que si l’utilisateur n’accepte pas, vous ne finissent pas par une installation partielle et ayant échoué. |
Exécutez simplement dxsetup ou appelez DirectSetup. |
Étant donné que le numéro de version DirectX ne fait référence à rien, à l’exception des principaux composants DirectX, ne vérifiez pas une version installée avant d’exécuter dxsetup.exe ou d’appeler DirectSetup. En outre, ne vérifiez pas l’existence d’un fichier pour tester si un composant facultatif est déjà installé, car cela ne détermine généralement pas correctement quand un composant existe, mais nécessite une mise à jour. Toutefois, le package d’installation DirectX détermine rapidement cela et effectue l’action appropriée. |
Petits packages d’installation
Vous pouvez créer des packages d’installation plus petits pour DirectX en supprimant le contenu du dossier redistribuable DirectX jusqu’au jeu minimal de fichiers requis pour que le programme d’installation fonctionne et en conservant tous les composants supplémentaires utilisés par votre jeu.
Selon vos spécifications minimales, vous n’avez peut-être même pas besoin d’inclure les fichiers d’armoire DirectX 9.0c principaux dans le dossier redistribuable de votre support d’installation. Une grande majorité des installations de Windows XP ont Service Pack 2, qui inclut les principaux composants DirectX 9.0c, de sorte que l’opération d’installation de DirectX sera très rapide et ne nécessite pas de redémarrage. Le plus petit package qui peut être créé est d’environ 3 Mo, et il peut être compressé à environ la moitié de cette taille. Un package comme celui-ci contient une version de la DLL D3DX et nécessite que DirectX 9.0c soit déjà présent.
Le jeu minimal de fichiers requis pour générer un package redistribuable est les fichiers suivants, situés dans le dossier Redist du SDK DirectX (Program Files\DirectX SDK\Redist) :
- dxsetup.exe
- dsetup32.dll
- dsetup.dll
- dxupdate.cab
Ajoutez-les à ces fichiers d’armoire pour les composants que vous souhaitez installer. Si vous avez besoin que les utilisateurs de votre application disposent déjà de DirectX 9.0c, vous n’avez pas besoin d’inclure DirectX.cab ou dxnt.cab, ce qui correspond à la plupart des besoins en espace. DirectX.cab est nécessaire uniquement pour Windows 98 et Windows ME ; dxnt.cab est nécessaire uniquement pour Windows 2000, Windows XP et Windows XP SP1 ; et dxdllreg_x86.cab est obligatoire uniquement pour Windows 2000, Windows XP RTM, Windows XP SP1 et Windows Server 2003 RTM. En outre, si vous n’utilisez pas DirectShow ou que vous supposez qu’il est déjà installé, vous pouvez omettre BDA.cab, BDANT.cabet BDAXP.cab.
Note
Vous pouvez supposer que les utilisateurs de votre application disposent déjà de DirectX 9.0c s’ils ont été installés par une version antérieure de votre application, que vous forcez les utilisateurs à mettre à jour manuellement via le programme d’installation web, ou que vous supposez qu’ils disposent de Windows XP SP2 ou version ultérieure.
Si vous utilisez uniquement la version 32 bits de D3DX pour avril 2006, vous pouvez ajouter Apr2006_d3dx9_30_x86.cab. Si vous utilisez la version 32 bits août 2006 32 bits de XINPUT, vous ajoutez Aug2006_xinput_x86.cab.
Si vous disposez d’une application 64 bits native, vous devez ajouter les versions _x64. Toutefois, si vous disposez d’une application 32 bits s’exécutant sur un système d’exploitation 64 bits, les versions 32 bits des DLL fonctionnent.
Vous pouvez ensuite distribuer ce package de fichiers et lancer DirectSetup en mode silencieux ou exécuter dxsetup.exe dans l’interpréteur de commandes en mode silencieux. N’oubliez pas de ne pas protéger ce package en vérifiant les versions des fichiers et assurez-vous que vos utilisateurs ne peuvent pas refuser d’exécuter la configuration de DirectX. L’un de ces événements crée un processus d’installation fallible.
Déploiement interne du runtime DirectX de débogage
Les runtimes de débogage des composants DirectX sont installés lorsque le Kit de développement logiciel (SDK) DirectX est installé, mais l’installation du Kit de développement logiciel (SDK) sur chaque ordinateur de test peut être douloureuse. Vous devez concevoir votre processus d’installation pour copier les DLL du runtime de débogage à partir de Program Files\Microsoft DirectX SDK\Developer Runtime\architecture\ vers Windows\system32\ ou dans le dossier du jeu.
Toutefois, nous vous recommandons vivement de ne pas simplement copier les DLL d’exécution publiées, car il est facile de les supprimer pour le produit final. Au lieu de cela, placez les fichiers d’installation DirectX dans un dossier partagé et exécutez le programme d’installation en mode silencieux à partir du dossier partagé.
Applications pont de bureau
Les applications Pont de bureau qui utilisent D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3 ou XACT doivent télécharger l'Microsoft.DirectX.x86 ou l’infrastructure Microsoft.DirectX.x64 afin de déployer ces composants hérités du SDK DirectX côte à côte. Vous pouvez également supprimer toutes ces dépendances ( voir Guide du développeur pour la version redistribuable de XAudio 2.9, et les billets de blog Living sans D3DX et XINPUT et Windows 8).