GameInputRedist.dll, no mesmo diretório que o executável do seu jogo. Isso é chamado de sideload. Um runtime com sideload permite que seu jogo use os recursos e as correções do GameInput com os quais ele foi compilado e testado, mesmo em um sistema em que o redistribuível do GameInput não está instalado ou em que uma versão mais antiga está instalada. Esse modelo é semelhante ao usado pelo DirectX Agility SDK.
O sideload é compatível com PC e com consoles XBOX. No XBOX, o sideload requer o GDK de outubro de 2025 (2510) ou posterior e permite que seu jogo use uma versão de API mais recente do que a compatível com o runtime do GDK, como a API v4 antes do GDK de outubro de 2026. Para obter mais informações, confira GameInput em consoles XBOX.
Instalar o redistribuível do GameInput ainda é a forma preferencial de implantar o GameInput no PC. Um runtime instalado é compatível com todos os recursos do GameInput, é compartilhado por todos os aplicativos e é atualizado independentemente do seu jogo. Use o sideload quando a instalação do redistribuível não for prática, por exemplo, quando o seu canal de distribuição não permitir a execução de instaladores, ou em computadores de desenvolvimento e teste.
Obter o runtime para sideload
O pacote NuGet Microsoft.GameInput contém o runtime para sideload nos locais a seguir.
O pacote NuGet não copia esses arquivos para a saída do build. Adicione uma etapa ao seu processo de build ou empacotamento que copie os arquivos da plataforma e da arquitetura de destino para junto do executável do seu jogo.
No PC, implante também
GameInputRawInputProxy.exe no mesmo diretório que GameInputRedist.dll. O runtime com sideload usa esse processo auxiliar para receber a entrada de teclado e mouse. Um runtime com sideload usa somente o proxy que está ao lado dele, nunca o de um redistribuível instalado. Se o proxy estiver ausente, o runtime passará a receber a entrada de teclado e mouse no processo do seu jogo.
Como o runtime é selecionado
Você não precisa alterar seu código para usar um runtime com sideload. Vincule comgameinput.lib do pacote NuGet e chame GameInputCreate normalmente. Na primeira vez que GameInputCreate é chamada, o carregador em gameinput.lib procura o runtime do GameInput nos seguintes locais:
- O runtime nativo da caixa de entrada,
GameInput.dll, no diretório do sistema. - O runtime do redistribuível instalado,
GameInputRedist.dll, no diretório do sistema ou no diretório em que o redistribuível do GameInput está instalado. - O runtime com sideload,
GameInputRedist.dll, no diretório do executável do jogo.
Limitações
No PC, alguns recursos do GameInput dependem de componentes que só estão presentes quando o redistribuível do GameInput está instalado, como o serviço GameInput que gerencia o foco de entrada. Quando o seu jogo usa um runtime com sideload no PC, as limitações a seguir se aplicam. Essas limitações não se aplicam a consoles XBOX.- As chamadas para IGameInput::EnableBackgroundInput com
truenão têm efeito, porque habilitar a entrada em segundo plano também reivindica os botões do sistema, que um runtime com sideload não pode reivindicar. - O foco de entrada não é gerenciado pelo serviço GameInput, portanto o GameInput não filtra de forma consistente a entrada com base em o seu jogo estar ou não em foco. Dependendo do dispositivo, seu jogo pode ou não receber entrada enquanto não está em foco. Se o seu jogo depende de um comportamento de foco consistente, verifique se ele está em foco antes de agir com base na entrada ou instale o redistribuível do GameInput.
- Nas versões de API v1 a v3,
IGameInput::SetFocusPolicyaceita somenteGameInputDefaultFocusPolicyeGameInputEnableBackgroundInput. Outras políticas de foco, incluindo qualquer combinação de sinalizadores, são ignoradas. - Nas versões de API v1 a v3,
IGameInput::RegisterSystemButtonCallbackfalha comGAMEINPUT_E_FEATURE_REQUIRES_INSTALL(0x838AD02B). Na versão de API v4, os botões do sistema são relatados em leituras do tipoGameInputKindSystemButton, que funcionam com um runtime com sideload. Para obter mais informações, confira IGameInputReading::GetSystemButtonState.
Recomendações
- Use a mesma versão do pacote NuGet para o cabeçalho do GameInput,
gameinput.libe o runtime com sideload. - Teste seu jogo com e sem o redistribuível do GameInput instalado.
- Se o seu jogo exigir entrada em segundo plano ou um comportamento de foco consistente no PC, instale o redistribuível do GameInput em vez de fazer o sideload do runtime ou além disso. Para obter mais informações, confira GameInput para PC e console com NuGet.
Confira também
GameInput para PC e console com NuGetGameInput em consoles XBOX
Controle de versão da API do GameInput
Fundamentos do GameInput
Referência da API do GameInput
