Passer au contenu principal
À partir de GameInput 4.0, vous pouvez déployer le runtime GameInput, GameInputRedist.dll, dans le même répertoire que l’exécutable de votre jeu. On parle alors de chargement indépendant (sideloading). Un runtime chargé de manière indépendante permet à votre jeu d’utiliser les fonctionnalités et correctifs GameInput avec lesquels il a été généré et testé, même sur un système où le composant redistribuable GameInput n’est pas installé ou dont une version antérieure est installée. Ce modèle est similaire à celui utilisé par le SDK DirectX Agility. Le chargement indépendant est pris en charge sur PC et sur les consoles XBOX. Sur XBOX, le chargement indépendant nécessite le GDK d’octobre 2025 (2510) ou une version ultérieure, et il permet à votre jeu d’utiliser une version d’API plus récente que celle prise en charge par le runtime du GDK, par exemple l’API v4 avant le GDK d’octobre 2026. Pour plus d’informations, consultez GameInput sur les consoles XBOX.
L’installation du composant redistribuable GameInput reste la méthode privilégiée pour déployer GameInput sur PC. Un runtime installé prend en charge toutes les fonctionnalités de GameInput, est partagé par toutes les applications et est mis à jour indépendamment de votre jeu. Utilisez le chargement indépendant lorsque l’installation du composant redistribuable n’est pas pratique, par exemple lorsque votre canal de distribution ne prend pas en charge l’exécution de programmes d’installation, ou sur les ordinateurs de développement et de test.

Obtention du runtime pouvant être chargé de manière indépendante

Le package NuGet Microsoft.GameInput contient le runtime pouvant être chargé de manière indépendante aux emplacements suivants. Le package NuGet ne copie pas ces fichiers dans la sortie de votre build. Ajoutez à votre processus de génération ou d’empaquetage une étape qui copie les fichiers correspondant à votre plateforme et à votre architecture cibles à côté de l’exécutable de votre jeu. Sur PC, déployez également GameInputRawInputProxy.exe dans le même répertoire que GameInputRedist.dll. Le runtime chargé de manière indépendante utilise ce processus auxiliaire pour recevoir les entrées du clavier et de la souris. Un runtime chargé de manière indépendante utilise uniquement le proxy situé à côté de lui, jamais celui d’un composant redistribuable installé. Si le proxy est absent, le runtime reçoit les entrées du clavier et de la souris dans le processus de votre jeu.
Les runtimes PC et XBOX portent le même nom de fichier. Veillez à déployer la copie qui correspond à votre plateforme cible. Si la mauvaise copie est déployée, GameInputCreate échoue avec HRESULT_FROM_WIN32(ERROR_EXE_MACHINE_TYPE_MISMATCH) (0x800700D8).

Sélection du runtime

Vous n’avez pas besoin de modifier votre code pour utiliser un runtime chargé de manière indépendante. Liez avec gameinput.lib à partir du package NuGet et appelez GameInputCreate comme d’habitude. Lors du premier appel à GameInputCreate, le chargeur de gameinput.lib recherche le runtime GameInput aux emplacements suivants :
  1. Le runtime intégré à Windows, GameInput.dll, dans le répertoire système.
  2. Le runtime du composant redistribuable installé, GameInputRedist.dll, dans le répertoire système ou dans le répertoire où le composant redistribuable GameInput est installé.
  3. Le runtime chargé de manière indépendante, GameInputRedist.dll, dans le répertoire de l’exécutable du jeu.
Le chargeur utilise le runtime dont la version de fichier est la plus élevée. Si deux runtimes ont la même version, le runtime chargé de manière indépendante est préféré au composant redistribuable installé, et le composant redistribuable installé est préféré au runtime intégré à Windows. Sur PC, lorsqu’un runtime chargé de manière indépendante est chargé et qu’un runtime GameInput plus récent est installé sur le système, le runtime chargé de manière indépendante transfère tous les appels au runtime installé plus récent. Le runtime chargé de manière indépendante sert donc de version minimale : votre jeu utilise toujours soit la version que vous avez livrée, soit une version installée plus récente. Le jeu est néanmoins toujours considéré comme chargé de manière indépendante, et les limitations décrites dans la section suivante continuent de s’appliquer.

Limitations

Sur PC, certaines fonctionnalités de GameInput dépendent de composants qui ne sont présents que lorsque le composant redistribuable GameInput est installé, comme le service GameInput qui gère le focus d’entrée. Lorsque votre jeu utilise un runtime chargé de manière indépendante sur PC, les limitations suivantes s’appliquent. Ces limitations ne s’appliquent pas aux consoles XBOX.
  • Les appels à IGameInput::EnableBackgroundInput avec true n’ont aucun effet, car l’activation de l’entrée en arrière-plan revendique également les boutons système, ce qu’un runtime chargé de manière indépendante ne peut pas faire.
  • Le focus d’entrée n’est pas géré par le service GameInput ; GameInput ne filtre donc pas systématiquement les entrées selon que votre jeu a le focus ou non. Selon le périphérique, votre jeu peut recevoir ou non des entrées lorsqu’il n’a pas le focus. Si votre jeu dépend d’un comportement de focus cohérent, vérifiez s’il a le focus avant de traiter les entrées, ou installez le composant redistribuable GameInput.
  • Dans les versions d’API v1 à v3, IGameInput::SetFocusPolicy accepte uniquement GameInputDefaultFocusPolicy et GameInputEnableBackgroundInput. Les autres stratégies de focus, y compris toute combinaison d’indicateurs, sont ignorées.
  • Dans les versions d’API v1 à v3, IGameInput::RegisterSystemButtonCallback échoue avec GAMEINPUT_E_FEATURE_REQUIRES_INSTALL (0x838AD02B). Dans la version d’API v4, les boutons système sont signalés dans des lectures de type GameInputKindSystemButton, qui fonctionnent avec un runtime chargé de manière indépendante. Pour plus d’informations, consultez IGameInputReading::GetSystemButtonState.

Recommandations

  • Utilisez la même version du package NuGet pour l’en-tête GameInput, gameinput.lib et le runtime chargé de manière indépendante.
  • Testez votre jeu avec et sans le composant redistribuable GameInput installé.
  • Si votre jeu nécessite l’entrée en arrière-plan ou un comportement de focus cohérent sur PC, installez le composant redistribuable GameInput au lieu de charger le runtime de manière indépendante, ou en complément. Pour plus d’informations, consultez GameInput pour PC et console avec NuGet.

Voir aussi

GameInput pour PC et console avec NuGet
GameInput sur les consoles XBOX
Gestion des versions de l’API GameInput
Notions fondamentales de GameInput
Référence de l’API GameInput
Dernière modification le 6 novembre 2026