Jeux
S´identifier    |    S´inscrire
 TOM'S GAMES >  ARTICLES >  Découverte de Direct X Imprimer cette page  Faire suivre cette page à un ami  Ajouter JeuxVideoPC.com à vos favoris  Mettre JeuxVideoPC.com en page de démarrage  Accéder à nos flux RSS

Découverte de Direct X



Partie 1


Niveau : débutant
Connaissances requises : bonnes bases en C++ et notions de programmation sous Windows

Le joueur assidu que vous êtes aura surement remarqué comment chaque jeu demande lors de l'installation de bien vouloir installer directX.
Mais de quoi s'agit-il ? Au risque de vous decevoir, non ce n'est pas un programme pour adulte. Il s'agit en fait que d'une API (API est un sigle anglais qui signifie Application Programming Interface - interface de programmation d' application).
Pour caricaturer ce sont en fait un ensemble de fonctions prêtes a l'emploi. Pour être correct nous dirons que DirectX est un ensemble d'API, il contient les API suivantes : Direct3D, DirectPlay, DirectShow, DirectInput, etc ...

Comme toute API, pour l' utiliser nous devrons télécharger les bibliothèques et en-têtes (le SDK), voila où le trouver

Attention la taille du fichier est tout de même de 220 Mo !

Pour information DirectX est né suite à la volonté de Microsoft de proposer aux développeurs de jeu sur PC une alternative viable à la programmation sous DOS. La première version de DirectX qui incorporait simplement DirectDraw (ancienne API 2D, aujourd hui fondue avec Direct3D) DirectSound(API sonore), et DirectPlay (API pour le code réseau) et DirectInput (API pour gérer les entrées utilisateur : clavier, souris etc ...) etait nommée "the game SDK".
Trés vite les versions se succèdent et malgré les débacles des premières versions DirectX devient de plus en plus attractif. Nous en sommes aujourd'hui a la version 9.0c. Sachez aussi que ce qu'on appelle OpenGL est pour sa part une autre API 3D qui fut longtemps le principal concurrent de Direct3D.

Nous ne l'utiliserons pas ici mais dirons simplement que le seul avantage qu'elle présente par rapport à Direct3D est d'être portable au contraire
de Direct3d et DirectX en général qui reste spécifique à Windows. Enfin presque puisque la Xbox utilise aussi la technologie DirectX (un équivalent de la version 8.1 en fait). En termes de design les API OpenGL et Direct3D sont assez proches actuellement.

Enfin Gardons bien à l'esprit que sans les runtime (composant d'exécution) à jour l' utilisateur ne pourra pas lancer notre application ! Comme mentionné en début d' article les professionnels réalisent en général ce test lors de la phase d' installation du jeu. En ce qui vous concerne sachez que si vous avez téléchargé le SDK, les runtime seront installés en même tant que le reste.

Maintenant pour la pratique voyons le test en question :
Pour notre plus grand bonheur Microsoft nous fournit dans le sdk une fonction pour détecter la version de directX (fichier getdxver.cpp). Nous aurions tort de nous en priver.

Notre projet comportera simplement deux fichiers sources getdxver.cpp et main.cpp

Voila le prototype la fonction qui nous interesse :
HRESULT getdxversion( DWORD* pdwDirectXVersion, TCHAR* strDirectXVersion, int cchDirectXVersion );

Nous utiliserons ici le TCHAR comme un simple char.
Le code du main.cpp que je vous invite à consulter n'apporte pas grand chose de nouveau sinon la macro SUCCEED ; elle vérifie juste que un code retour est >0 .
Autre nouveauté la fonction MessageBox ; c'est en quelque sorte le printf moderne.
Elle demande en paramètre un handle de fênetre (NULL-> affichage sur le bureau), un message à afficher , un titre pour la boite de message et enfin des valeur pour spécifier le type de boite de message.

Inutile pour vous de lire getdxver.cpp. Contentez vous d'accepter que la fonction de Microsoft fonctionne !

Concentrez vous plutot sur le main.cpp.

Enfin si vous tentez de compiler le code source pensez à dire à votre compilateur de faire le lien avec les bibliothèques suivantes : Version.lib dxguid.lib, sinon gare aux erreurs !





Liens utiles







Réagissez sur cet article !


Attention, nous avons détecté une anomalie dans votre adresse email.
Veuillez choisir une adresse parmi nos propositions :

Fermer