Propriétés du périphérique
Les applications qui ont besoin de connaître des détails spécifiques sur un périphérique peuvent accéder à la structure GameInputDeviceInfo du périphérique. Cette structure contient une multitude d’informations sur le périphérique, mais il y a quelques points à comprendre concernant son utilisation. Les informations sur le périphérique peuvent être volumineuses, parfois 10 Ko ou plus. Pour des raisons d’efficacité, l’API GameInput ne crée pas de copie des données du périphérique, mais accorde temporairement aux applications un accès direct aux données stockées en interne dans GameInput. Cette approche favorise le code hautes performances en évitant les allocations de mémoire tampon et les transferts de mémoire volumineux, car les applications ne s’intéressent souvent qu’à une petite partie des données. Cela permet également à la structure GameInputDeviceInfo de contenir des pointeurs imbriqués vers d’autres régions du bloc de données d’informations sur le périphérique, où se trouvent divers tableaux d’informations complémentaires, sans ajouter la complexité d’une sortie de taille variable et de copies profondes.ID de périphérique
L’une des informations importantes disponibles dans les informations sur le périphérique est l’ID de périphérique local à l’application. Il s’agit d’une valeur spéciale de 32 octets qui identifie de manière unique le périphérique, même après un redémarrage de l’application ou du système. Cet ID reste également stable lors des déconnexions et reconnexions des périphériques sans fil, ainsi que des périphériques USB filaires, tant qu’ils sont rebranchés sur le même port USB. L’ID de périphérique local à l’application est le plus souvent utilisé pour identifier des périphériques spécifiques au-delà de la durée de vie de l’application. Par exemple, un jeu doté d’une interface utilisateur de mappage des entrées peut utiliser l’ID de périphérique pour s’assurer que la configuration d’entrée de l’utilisateur est appliquée aux mêmes périphériques à chaque démarrage de l’application. C’est particulièrement important pour les applications qui prennent en charge des mappages complexes sur plusieurs périphériques qui pourraient autrement sembler identiques (par exemple, un ensemble de périphériques de tableau de bord homogènes pour un simulateur de vol).Énumération des périphériques
Bien que la plupart des applications ne devraient jamais en avoir besoin, GameInput prend en charge l’énumération explicite des périphériques connectés. Celle-ci peut être effectuée via la méthode RegisterDeviceCallback de l’interface IGameInput.Périphériques agrégés
Lorsque plusieurs claviers sont connectés en même temps, la plupart des API d’entrée présentent l’entrée aux applications de manière combinée, comme si toute l’entrée provenait d’un seul clavier système virtuel. (Il en va de même pour les souris.) GameInput, en revanche, expose normalement chaque périphérique et son entrée individuellement. Cela offre de nombreuses possibilités (par exemple, pouvoir déterminer quel chatpad d’utilisateur génère l’entrée dans un jeu multijoueur local), mais cela ajoute aussi beaucoup de complexité aux applications qui n’ont pas besoin de cette fonctionnalité. Pour remédier à cela, GameInput prend en charge le concept de périphériques agrégés. La méthode CreateAggregateDevice de l’interface IGameInput permet aux applications de créer une instance virtuelle de IGameInputDevice qui expose l’entrée combinée de tous les périphériques pour un seul GameInputKind. Ce périphérique agrégé peut ensuite être utilisé comme filtre pour d’autres fonctions de l’API GameInput afin d’interagir avec le périphérique agrégé (par exemple, pour récupérer des lectures). Bien que cela soit le plus souvent utilisé pour les entrées clavier et souris, cela peut également être utilisé avec la plupart des autres types d’entrée.Dans la version actuelle,
CreateAggregateDevice n’est pas encore implémenté. —>Documentation de référence de l’API
- GameInput (contenu de l’API)
- Structures
