L’arrivée sur le marché des cartes d’extension chargées d’accélérer de façon matérielle certains calculs (audio, vidéo, 3D, etc. ) a posé un problème majeur aux développeurs de logiciels. Il leur fallait en effet proposer autant de
versions de leurs logiciels qu’il existait de composants, chacun d’eux ne reconnaissant que son propre langage de programmation. Pour qu’un jeu puisse par exemple fonctionner indifféremment avec un circuit 3D d’origine 3DFX, Matrox ou nVidia, les
développeurs devaient intégrer dans le jeu trois versions distinctes du code, adaptées à chaque circuit. Un vrai casse-tête, surtout quand on sait le rythme de l’évolution technologique.
Une sorte d’esperanto de la programmation
Pourquoi ne pas standardiser alors la façon d’accéder aux périphériques et aux cartes d’accélération en employant une sorte d’esperanto de la programmation : l’interface DirectX de Microsoft était née. Grâce à elle, les logiciels
correspondent non plus directement avec le matériel, mais avec l’interface DirectX qui intercepte toutes les commandes. C’est elle qui va ensuite communiquer avec chaque composant matériel à travers son pilote DirectX. Selon les fonctions prises en
charge par le pilote, DirectX lui transmettra les commandes que le composant matériel est capable de traiter. Dans les autres cas, l’interface fera traiter les commandes par le processeur central de la machine, par le truchement d’une émulation.
Concrètement, l’interface de programmation DirectX est constituée de plusieurs sous-systèmes logiciels, adaptés à chaque catégorie de matériel. Le plus connu de ces composants est probablement Direct3D, chargé de gérer les puces d’accélération 3D,
mais il en existe bien d’autres comme Direct-Sound, qui prend en charge les composants audio, DirectInput, qui s’occupe des périphériques d’entrée de type clavier, souris et joystick, ou encore DirectX Media, qui gère le rendu des fichiers
multimédias (vidéos, streaming…). Quel que soit le composant DirectX, le principe de fonctionnement demeure le même.A l’arrivée, les programmeurs n’ont plus aujourd’hui qu’à écrire une seule et unique version de leurs logiciels, capables dès lors de fonctionner sous Windows avec n’importe quel matériel, présent ou à venir. La seule obligation pour
les fabricants étant de mettre à disposition pour leur matériel un pilote compatible DirectX.
Décharger au maximum le processeur central
Outre la simplification des développements, l’interface de programmation DirectX poursuit un autre objectif : décharger au maximum le processeur central du PC, en permettant de profiter au mieux des possibilités d’accélération
matérielles offertes par les autres composants présents dans la machine. Cela explique les évolutions successives de DirectX, permettant à une même version de Windows de tirer parti au fur et à mesure de leur disponibilité des nouvelles fonctions
offertes par le matériel. Avec Vista, DirectX évolue encore. La version 10 qui lui est dédiée propose en effet une refonte complète du module Direct3D, capable à présent de prendre en charge de façon matérielle la création des objets en 3D, ainsi
que la modélisation des déformations dues à des contraintes physiques… et bien plus encore ! Autant de calculs que n’aura désormais plus à effectuer le processeur central.
🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.