Programmation DirectX Introduction

Microsoft DirectX est une suite d'APIs multimédia intégrée au système d'exploitation Windows permettant d'exploiter les capacités matérielles d'un ordinateur.

DirectX fournit un ensemble de bibliothèques de fonctions essentiellement dédiées aux traitements audio/vidéo (carte vidéo, carte son, carte 3D, etc.) et aux périphériques d'entrée/sortie (joystick, carte réseau, souris, etc.).

L'avantage des fonctions de DirectX pour les programmeurs est que celles-ci utilisent (si possible) un algorithme alternatif (confié au processeur) quand le matériel installé ne gère pas ce type de traitement. Il fonctionne comme une surcouche de Windows, évitant théoriquement aux programmeurs de devoir s'occuper des différences matérielles qui existent entre les différents PCs. Par exemple, si une carte vidéo n'a pas de fonctions dédiées à la 3D, DirectX demandera au processeur de s'occuper du rendu d'une image de synthèse ou le rendu 3D en temps réel.

DirectX est la propriété de la société Microsoft. Ce produit n'étant pas libre, les sources ne sont pas rendues publiques, contrairement à la bibliothèque OpenGL, concurrente de Direct3D. Malgré cela, il devient de plus en plus incontournable notamment dans le domaine de la programmation des jeux vidéo 3D, Microsoft passant des accords technologiques avec les constructeurs de cartes 3D grand public.

La Xbox, la console de Microsoft, utilise une version modifiée de DirectX 8.1 et son évolution, la Xbox 360, sur DirectX 9.0

Famille DirectX

modifier

DirectX est constitué de plusieurs modules plus ou moins indépendants les uns des autres, dont :

  • Direct3D : gère l'affichage 3D
  • DirectDraw : gère l'affichage 2D (intégré a Direct3D depuis la version 8)
  • DirectInput : gère les périphériques d'entrée (joystick, clavier, etc.)
  • DirectPlay : gère les échanges de données par réseau (local ou Internet)
  • DirectSound : gère les sons (courts)
  • DirectMusic : gère la musique (MIDI, ...) (longue)
  • DirectVoice : gère les échanges vocaux en direct
  • DirectShow : gère l'affichage et la capture de vidéos