FAQ DirectXConsultez toutes les FAQ

Nombre d'auteurs : 4, nombre de questions : 63, dernière mise à jour : 2 septembre 2018 

 
OuvrirSommaireGénéralités

DirectX étant une API en constante évolution, nous comptons sur vous pour enrichir cette FAQ et participer à sa maintenance. Si vous avez remarqué une erreur, une simple faute d'orthographe, si vous souhaitez nous faire part d'un manque, ou n'importe quoi d'autre : vous pouvez contacter le responsable par MP (Laurent Gomila), ou poster à la suite de ce sujet consacré à la FAQ DirectX.

Merci !

Créé le 22 janvier 2006  par Laurent Gomila

Pensez tout d'abord à consulter la FAQ Programmation 3D : celle-ci contient des notions de 3D d'ordre plus général, notamment des problèmes que vous pourriez rencontrer avec DirectX, mais qui ne sont pas spécifiques à cette API.

Si vous ne trouvez de réponse à votre question dans aucune FAQ, et que celle-ci vous paraît pertinente, vous pouvez nous en faire part afin que nous l'ajoutions à cette FAQ. Voir http://jeux.developpez.com/faq/directx/?page=generalites#GENERALITES_participer.

Créé le 22 janvier 2006  par Laurent Gomila

Introduit en 1995 avec Windows 95, DirectX est une suite d'API multimédias basée sur le modèle COM, développée par Microsoft pour les systèmes Windows. Ces API, bien souvent utilisées pour le développement de jeux, permettent aux applications de tirer parti du matériel (carte graphique, carte son…) de façon homogène et optimisée.

Les API composant DirectX sont les suivantes :

  • DirectGraphics (anciennement DirectDraw et Direct3D) : gestion des graphismes 2D/3D ;
  • DirectMusic : gestion des sons et musiques ;
  • DirectSound : gestion des sons au format wave ;
  • DirectShow : gestion des vidéos ;
  • DirectInput : gestion des périphériques d'entrées (clavier, souris, joystick…) ;
  • DirectSetup : gestion de l'installation des composants DirectX ;
  • DirectPlay : gestion des échanges réseau (obsolète).

Le développement avec DirectX est possible via plusieurs langages de programmation : C, C++, .NET (C++ managé, VB, C#…), Delphi, etc.

Créé le 22 janvier 2006  par Laurent Gomila

Pour développer des applications avec DirectX, il vous faudra télécharger et installer le SDK DirectX. Celui-ci se trouve sur le site de Microsoft :
http://www.microsoft.com/en-us/download/details.aspx?id=6812.

Ce SDK contient une documentation de référence, des tutoriels, des exemples (pour Visual Studio), les DLL debug/retail de DirectX, ainsi que les fichiers bibliothèques (.lib) et en-têtes (.h) nécessaires au développement.

Pour démarrer familiarisez-vous avec les tutoriels et la documentation, ceux-ci vous guideront pas à pas dans vos débuts.

Le SDK DirectX est prévu pour du développement sous Visual Studio, mais il est également possible d'utiliser d'autres environnements de programmation (voir http://jeux.developpez.com/faq/directx/?page=generalites#GENERALITES_bcb et http://jeux.developpez.com/faq/directx/?page=generalites#GENERALITES_devcpp).

Créé le 22 janvier 2006  par Laurent Gomila

Afin de développer avec DirectX dans un environnement C++ Builder il vous faudra, en plus du SDK (voir http://jeux.developpez.com/faq/directx/?page=generalites#GENERALITES_sdk), les versions C++ Builder des fichiers DLL et LIB de DirectX. Vous pourrez les trouver sur le site http://www.clootie.ru/cbuilder/index.html#D3D_SDKs ; attention de bien prendre les fichiers correspondant à la version de votre SDK !

Pour compiler convenablement, il vous faudra également définir certaines fonctions mathématiques non standard de Visual C++ : sqrtf, tanf, cosf, sinf, atanf, acosf, asinf.

Nous ne donnerons ici pas plus de détails, tout ceci étant très bien expliqué dans ce tutoriel.

Créé le 22 janvier 2006  par Laurent Gomila

Il existait autrefois un DevPack permettant de développer avec DirectX sous Dev-C++, cependant pour des raisons de droits, celui-ci a été retiré. Pour utiliser DirectX avec cet EDI, il faudra donc un peu feinter, voici la marche à suivre :

  • téléchargez et installez le SDK DirectX (voir http://jeux.developpez.com/faq/directx/?page=generalites#GENERALITES_sdk) ;
  • téléchargez et installez les utilitaires MinGW (mingw-utils-xxx.tar.gz) (Image non disponiblehttp://sourceforge.net/projects/mingw/files/) ;
  • l'utilitaire qui nous intéresse est reimp.exe. Il sert à convertir les fichiers .lib en .a compatibles avec Dev-C++.

reimp s'utilise très simplement : placez-vous dans le répertoire contenant les .lib du SDK, et tapez la commande suivante dans la console :

 
Sélectionnez
reimp d3d9

Cette commande convertit le fichier d3d9.lib en libd3d9.a ; faites de même avec tous les fichiers .lib que vous aurez à utiliser. Il ne reste ensuite plus qu'à lier avec les fichiers fraîchement créés : ajoutez par exemple « -ld3d9 » dans les options de l'éditeur de lien de votre projet Dev-C++.

Enfin, n'oubliez pas d'ajouter les chemins des en-têtes et bibliothèques DirectX aux chemins de Dev-C++ : dans les options du compilateur, onglet « répertoires », ajoutez « repertoire_du_sdk\lib\x86 » dans « Répertoires bibliothèques », et « repertoire_du_sdk\include » dans « Répertoires C++ .h ».

Créé le 22 janvier 2006  par Laurent Gomila

Sous Windows, l'environnement de programmation gratuit habituellement conseillé aux débutants était jusqu'alors Dev-C++. Mais comme vous vous en êtes peut-être rendu compte, utiliser DirectX avec cet environnement n'est pas naturel et peut causer pas mal de soucis.

Heureusement il existe aujourd'hui un EDI gratuit capable de s'interfacer avec la plupart des compilateurs et qui rend donc le développement DirectX moins problématique, il s'agit de Code::Blocks. Cependant il faudra télécharger quelques outils et SDK nécessaires à la compilation d'applications Win32.

Tout d'abord, le SDK de DirectX fournit ses bibliothèques au format .lib propre aux compilateurs Microsoft. De ce fait vous pouvez déjà oublier le compilateur MinGW (livré avec Dev-C++ et par défaut avec Code::Blocks). Cependant Microsoft met à disposition gratuitement un compilateur, Microsoft Visual C++ 2010 express. Vous le trouverez ici :

Microsoft Visual C++ 2010 express

Il s'agit d'un compilateur sans interface, utilisable en ligne de commande. Téléchargez-le et installez-le.

Le problème est que ce compilateur n'est fourni qu'avec les bibliothèques standard C et C++, et seulement celles-là. Il va donc falloir télécharger le SDK permettant de développer des applications Win32 fenêtrées. Il s'agit du Windows Plateform SDK. Vous le trouverez ici :

Windows Plateform SDK

La prochaine étape est le téléchargement du SDK DirectX, que vous trouverez ici dans la section download :

Microsoft MSDN : SDK DirectX

Il ne reste plus qu'à télécharger Code::Blocks dans sa version sans compilateur :

Code::Blocks Download section

Une fois installé, il reconnaîtra automatiquement votre installation du compilateur Microsoft et vous aurez la possibilité d'utiliser celui-ci pour compiler vos projets sous Code::Blocks.

N'oubliez pas d'inclure les divers chemins vers les dossiers en-têtes (include) et bibliothèques (lib) (Plateform SDK, DirectX SDK…), sans quoi le compilateur et/ou l'éditeur de liens ne va pas trouver les fichiers nécessaires à la génération de l'exécutable.

Créé le 22 janvier 2006  par Zoso_

La programmation avec DirectX en Delphi nécessite une version traduite des fichiers de développement du SDK DirectX (écrit initialement pour le C++ et les langages .NET). Le problème est qu'il n'existe pas une version officielle, mais une multitude de packages plus ou moins à jour, plus ou moins complets.

Un bon point de départ pour tout savoir sur le développement DirectX en Delphi est ce tutoriel : Introduction à DirectX9 en Delphi.

Vous pouvez également consulter cet article présentant DelphiX : Introduction à DelphiX.

Ou, plus récemment, celui-ci présentant les composants Asphyre pour DirectX 9 : Les composants Asphyre.

Créé le 22 janvier 2006  par Laurent Gomila

Actuellement, Microsoft prépare DirectX 11.2 qui sera intégré à Windows 8.1 et dans la Xbox One.

Créé le 22 janvier 2006  par LeGreg

Voici quelques liens qui vous seront utiles lors de votre apprentissage de DirectX.

Tutoriels en français

Tutoriels en anglais

Bien sûr, n'oubliez pas de consulter avant toute chose les exemples et tutoriels fournis avec le SDK, ainsi que la documentation de référence.

Créé le 22 janvier 2006  par Laurent Gomila

Oui, comme avec tous les composants COM. Cependant, si l'on utilise DirectGraphics en C, on se prive de toutes les fonctionnalités D3DX (voir http://jeux.developpez.com/faq/directx/?page=dgraphics_generalites#DGRAPHICS_GENERALITES_d3dx), ce qui n'a donc finalement que très peu d'intérêt. D'autant plus que pratiquement toutes les plateformes sur lesquelles on peut programmer en C proposent également des compilateurs C++ performants. Si vraiment vous êtes allergiques au C++, vous pouvez donc toujours programmer en « C évolué » et ainsi profiter de tous les avantages offerts par DirectGraphics et D3DX.

Créé le 22 janvier 2006  par Laurent Gomila

Il n'existe malheureusement aucune fonction miracle ou bidouille magique pour récupérer la version de DirectX installée. Le seul et unique moyen est donné par le sample « DxVer » du SDK, pour l'intégrer à votre programme vous devrez donc en recopier le code.

Créé le 22 janvier 2006  par Laurent Gomila
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005-2012 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.