L’API définit séparément les appareils souris et clavier
GameInput. Ces appareils ont une signification particulière dans Windows et sont traités ailleurs. Pour plus d’informations, consultez Développement de pilotes clients HID pour clavier et souris.GameInput représente une grande variété d’appareils, notamment les manettes, les manettes de jeu, les manettes de vol, les manettes d’arcade, les volants de course et les manettes de navigation dans l’interface utilisateur. Chaque type d’appareil a sa propre interface que vous pouvez utiliser pour interagir avec l’appareil. L’apparition d’un appareil matériel sous l’une de ces interfaces dépend de sa conformité à l’un des protocoles de pilotes Windows existants pour les manettes d’entrée de jeu, ou du fait qu’il s’agit d’un appareil HID générique.
Pour les appareils compatibles avec XInput, l’API GameInput énumère ces appareils en tant que manette, manette de jeu et manette de navigation dans l’interface utilisateur. Le mappage de ces appareils est strictement dicté par le protocole, et le protocole ne prend pas en charge les boutons supplémentaires. Ces appareils prennent aussi en charge les effets de vibration doubles ou quadruples. Ces effets correspondent aux moteurs gauche et droit, ainsi qu’aux gâchettes gauche et droite. Il existe trois principaux protocoles filaires pour XInput : XUSB, XInputHID et le Game Input Protocol (GIP). Sur console, le système prend uniquement en charge les appareils GIP. Vous trouverez plus d’informations sur tous ces protocoles dans la documentation de l’API XInput pour les appareils matériels. Sur PC, les appareils doivent interagir avec le pilote XInputHID. Pour les autres appareils Game Input Protocol (GIP) autres que les manettes de jeu, l’API GameInput énumère ces appareils en tant que manette de vol, manette d’arcade, volant de course ou manette de navigation dans l’interface utilisateur, selon les métadonnées qu’ils présentent à la connexion. Ce comportement s’applique à la fois à la console et au PC. Pour plus d’informations, consultez la documentation du Game Input Protocol (GIP).
Pour les appareils HID, GameInput offre plus de souplesse quant à la façon dont les appareils se présentent au système d’exploitation. Grâce à cette souplesse, les appareils HID peuvent potentiellement exposer un large éventail de fonctionnalités et de capacités au-delà de ce que définissent les protocoles standard de manettes de jeu. Un volant de course, par exemple, pourrait se présenter à GameInput comme une manette de jeu et une manette de vol. La liste complète des boutons, commutateurs et axes offerts sur l’appareil est définie par le descripteur de rapport HID de l’appareil et exposée par l’interface IGameInputReading au moyen de GetControllerButtonState, de GetControllerButtonCount et des appels homologues permettant d’obtenir les axes ou les commutateurs. Pour mapper ces fonctionnalités vers d’autres interfaces, comme une manette de jeu ou un volant de course, GameInput utilise une série de mappages dans le registre Windows. L’API Windows.Gaming.Input (WGI) partage ces mappages. Pour plus d’informations, consultez Données de registre pour les manettes de jeu. Un fabricant de matériel indépendant (IHV) peut ajouter ses mappages de registre au chemin HKLM\SYSTEM\CurrentControlSet\Control\GameInput\Devices dans le cadre de l’installation de son pilote. L’API GameInput ajoute périodiquement des mappages par défaut pour les appareils courants dans les futures versions de l’API qu’elle redistribue avec les jeux. Les mappages des IHV ont priorité sur les mappages par défaut. Vous trouverez les mappages fournis avec l’API dans HKLM\SOFTWARE\Microsoft\GameInputRedist.
