Article de reference

Entrée directe

Il fonctionne avec Windows 98/Me et DirectX 9. DirectX 8.0 (2000), la dernière version avec des changements majeurs, incluait le mappage des actions et une prise en charge plus ...

Il fonctionne avec Windows 98/Me et DirectX 9. DirectX 8.0 (2000), la dernière version avec des changements majeurs, incluait le mappage des actions et une prise en charge plus large de différents types de périphériques.

Alors que Microsoft avait initialement prévu que DirectInput gère toutes les entrées, cela n'a pas fonctionné. Microsoft ne recommande plus l'utilisation de DirectInput pour les claviers et les souris et encourage désormais l'utilisation de XInput pour les manettes Xbox 360. Sous Windows Vista , Windows 7 et les versions ultérieures, l'interface utilisateur de configuration des actions intégrée a été supprimée. DirectInput n'est pas disponible pour les applications du Microsoft Store.

XInput

XInput, une API plus récente mais désormais obsolète pour les manettes de nouvelle génération, a été introduite en décembre 2005 lors du lancement de la Xbox 360. Cette spécification assurait la prise en charge des manettes Xbox 360 sous Windows XP SP1 et les systèmes d'exploitation ultérieurs. Microsoft la décrit comme plus facile à programmer et nécessitant moins de configuration que DirectInput. XInput est compatible avec DirectX version 9 et ultérieures.

Compatibilité avec la manette Xbox 360

Une manette Xbox 360 , avec le pilote Microsoft par défaut, présente les limitations suivantes avec DirectInput, par rapport à XInput :

  • Les boutons manquent de précision. Cela peut poser problème avec les jeux qui ne prennent pas en charge la reconfiguration des manettes.
  • Les gâchettes gauche et droite fonctionneront comme un seul axe représentant la différence signée entre les gâchettes, et non comme un axe analogique ou un bouton indépendant.
  • Les effets de vibration ne fonctionneront pas.
  • La recherche de périphériques de casque ne fonctionnera pas ; XInput 1.4, intégré à Windows 8, a introduit la prise en charge des casques Xbox.

Selon MSDN , « la combinaison des gâchettes gauche et droite dans DirectInput est intentionnelle. Les jeux ont toujours considéré que les axes des périphériques DirectInput étaient centrés en l'absence d'interaction de l'utilisateur. Cependant, la manette Xbox 360 a été conçue pour enregistrer la valeur minimale, et non le centre, lorsque les gâchettes ne sont pas enfoncées. » MSDN proposait comme « solution » de combiner les gâchettes, en assignant une gâchette à une direction positive et l'autre à une direction négative, afin que l'absence d'interaction de l'utilisateur indique à DirectInput que la « commande » est au centre.

Ce qui précède ignore cependant le fait que de nombreuses manettes DirectInput, comme les manettes à double joystick analogique et les volants de course , permettent déjà de configurer les gâchettes et les pédales indépendamment. De plus, de nombreux périphériques DirectInput offrent également des effets de vibration. Au moins un pilote tiers, XBCD, permet aux manettes Xbox 360 de bénéficier, via DirectInput, des vibrations, des zones mortes et (en option) de gâchettes analogiques/numériques indépendantes, comme le fait son pilote XInput. Cela suggère que le pilote de manette Xbox 360 de Microsoft a été volontairement doté d'une prise en charge DirectInput plus limitée, plutôt que d'une différence entre les API DirectInput et XInput. Par ailleurs, les manettes Xbox 360 utilisant XInput ne prennent en charge qu'un contrôle très basique des moteurs de vibration , contrairement à la palette d'effets plus étendue offerte par DirectInput.