Propriedades do dispositivo
Os aplicativos que precisam conhecer detalhes específicos sobre um dispositivo podem acessar a estrutura GameInputDeviceInfo do dispositivo. Essa estrutura contém uma grande quantidade de informações sobre o dispositivo, mas há algumas coisas a entender sobre como usá-la. As informações do dispositivo podem ser grandes - às vezes 10 KB ou mais. Por motivos de eficiência, a API GameInput não faz uma cópia dos dados do dispositivo; em vez disso, concede temporariamente aos aplicativos acesso direto aos dados armazenados internamente no GameInput. Essa abordagem favorece códigos de alto desempenho, evitando alocações de buffer e grandes transferências de memória, pois os aplicativos geralmente estão interessados apenas em uma pequena parte dos dados. Isso também permite que a estrutura GameInputDeviceInfo contenha ponteiros aninhados para outras regiões do bloco de dados de informações do dispositivo, onde podem ser encontradas várias matrizes de informações de suporte, sem adicionar a complexidade de saídas de tamanho variável e cópias profundas.IDs de dispositivo
Uma informação importante disponível nas informações do dispositivo é a ID de dispositivo local do aplicativo. Trata-se de um valor especial de 32 bytes que identifica exclusivamente o dispositivo, mesmo entre reinicializações do aplicativo ou do sistema. Essa ID também é estável entre desconexões e reconexões de dispositivos sem fio, e de dispositivos USB com fio, desde que sejam reconectados na mesma porta USB. A ID de dispositivo local do aplicativo é mais comumente usada para identificar dispositivos específicos além do tempo de vida do aplicativo. Por exemplo, um jogo com uma interface de mapeamento de entrada pode usar a ID do dispositivo para garantir que a configuração de entrada do usuário seja aplicada aos mesmos dispositivos sempre que o aplicativo for iniciado. Isso é especialmente importante para aplicativos que oferecem suporte a mapeamentos complexos entre vários dispositivos que, de outra forma, poderiam parecer idênticos (por exemplo, um conjunto de dispositivos de painel de instrumentos homogêneos para um simulador de voo).Enumeração de dispositivos
Embora a maioria dos aplicativos nunca precise disso, o GameInput oferece suporte à enumeração explícita de dispositivos conectados. Isso pode ser feito por meio do método RegisterDeviceCallback da interface IGameInput.Dispositivos agregados
Quando vários teclados estão conectados ao mesmo tempo, a maioria das APIs de entrada apresenta a entrada aos aplicativos de forma combinada, como se toda a entrada viesse de um único teclado do sistema virtual. (O mesmo também se aplica aos mouses.) O GameInput, no entanto, normalmente expõe cada dispositivo e sua entrada individualmente. Isso abre muitas possibilidades - por exemplo, poder saber qual chatpad de usuário está gerando entrada em um jogo multijogador local -, mas também adiciona muita complexidade a aplicativos que não precisam dessa funcionalidade. Para resolver isso, o GameInput oferece suporte ao conceito de dispositivos agregados. O método CreateAggregateDevice da interface IGameInput permite que os aplicativos criem uma instância virtual de IGameInputDevice que expõe a entrada combinada de todos os dispositivos para um único GameInputKind. Esse dispositivo agregado pode então ser usado como filtro para outras funções da API GameInput para interagir com o dispositivo agregado (por exemplo, recuperar leituras). Embora isso seja mais comumente usado para entrada de teclado e mouse, também pode ser usado com a maioria dos outros tipos de entrada.Na versão atual,
CreateAggregateDevice ainda não está implementado. —>Documentação de referência da API
- GameInput (conteúdo da API)
- Estruturas
