Propriétés de l’appareil
Les applications qui doivent connaître des détails précis sur un appareil peuvent accéder à la structure GameInputDeviceInfo de l’appareil. Cette structure contient une foule d’informations sur l’appareil, mais il y a quelques points à comprendre concernant son utilisation. Les informations sur l’appareil peuvent être volumineuses, parfois 10 Ko ou plus. Pour des raisons d’efficacité, l’API GameInput ne fait pas de copie des données de l’appareil, mais accorde plutôt temporairement aux applications un accès direct aux données stockées à l’interne dans GameInput. Cette approche favorise le code à haute performance en évitant les allocations de mémoires tampons et les transferts de mémoire volumineux, car les applications ne s’intéressent souvent qu’à une petite partie des données. Cela permet aussi à la structure GameInputDeviceInfo de contenir des pointeurs imbriqués vers d’autres régions du bloc de données d’informations sur l’appareil où se trouvent divers tableaux d’informations complémentaires, sans ajouter la complexité d’une sortie de taille variable et de copies profondes.ID d’appareil
Un élément d’information important offert dans les informations sur l’appareil est l’ID d’appareil local à l’application. Il s’agit d’une valeur spéciale de 32 octets qui identifie l’appareil de façon unique, même après le redémarrage de l’application ou du système. Cet ID reste également stable après la déconnexion et la reconnexion des appareils sans fil, ainsi que des appareils USB filaires, à condition qu’ils soient rebranchés dans le même port USB. L’ID d’appareil local à l’application est le plus souvent utilisé pour identifier des appareils précis 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 d’appareil pour s’assurer que la configuration d’entrée de l’utilisateur est appliquée aux mêmes appareils à chaque démarrage de l’application. Ceci est particulièrement important pour les applications qui prennent en charge des mappages complexes sur plusieurs appareils qui pourraient autrement sembler identiques (par exemple, un ensemble d’appareils de tableau de bord homogènes pour un simulateur de vol).Énumération des appareils
Bien que la plupart des applications ne devraient jamais en avoir besoin, GameInput prend en charge l’énumération explicite des appareils connectés. Celle-ci peut être effectuée au moyen de la méthode RegisterDeviceCallback de l’interface IGameInput.Appareils 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, toutefois, expose normalement chaque appareil et son entrée individuellement. Cela ouvre de nombreuses possibilités, par exemple savoir quel clavier de clavardage d’un 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 y remédier, GameInput prend en charge le concept d’appareils 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 appareils pour un seul GameInputKind. Cet appareil agrégé peut ensuite être utilisé comme filtre avec d’autres fonctions de l’API GameInput pour interagir avec l’appareil agrégé (par exemple, pour récupérer des lectures). Bien qu’il soit surtout utilisé pour les entrées clavier et souris, il peut aussi être utilisé avec la plupart des autres types d’entrée.Dans la version actuelle,
CreateAggregateDevice n’est pas encore implémentée. —>Documentation de référence de l’API
- GameInput (contenu de l’API)
- Structures
