> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IGameInputDevice::SetLightingColor

> Prépare une couleur pour une ou plusieurs lampes du périphérique d'entrée.

Prépare une couleur pour une ou plusieurs lampes du périphérique d'entrée. La couleur est envoyée au périphérique la prochaine fois que vous appelez [IGameInputDevice::ApplyLightingColors](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingcolors.md).

## Syntaxe

```cpp theme={null}
void SetLightingColor(
    GameInputColor color,
    GameInputLightingGroups group,
    uint32_t groupOrderIndex = GAMEINPUT_LIGHTING_GROUP_ORDER_INDEX_ALL
);
```

### Paramètres

*color*\
Type : [GameInputColor](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/input/gameinput/structs/gameinputcolor)

La couleur à préparer pour les lampes sélectionnées.

*group*\
Type : [GameInputLightingGroups](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/input/gameinput/enums/gameinputlightinggroups)

La sélection de groupes d'éclairage qui contient les lampes à définir. Il peut s'agir d'un ou de plusieurs indicateurs de groupes nommés, de `GameInputLightingGroupAll` pour sélectionner toutes les lampes du périphérique, ou de `GameInputLightingGroupUnknown` pour sélectionner les lampes qui n'appartiennent à aucun groupe nommé.

*groupOrderIndex*   \_In\_opt\_\
Type : uint32\_t

Sélectionne une lampe individuelle dans *group*. La valeur par défaut, `GAMEINPUT_LIGHTING_GROUP_ORDER_INDEX_ALL`, sélectionne toutes les lampes de *group*. Consultez la section Remarques pour savoir comment les autres valeurs sont interprétées.

### Valeur de retour

Type : void

## Remarques

`SetLightingColor` ne modifie pas les lampes immédiatement. Elle enregistre (prépare) la couleur des lampes sélectionnées. Appelez [IGameInputDevice::ApplyLightingColors](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingcolors.md) pour envoyer toutes les couleurs préparées au périphérique en une seule mise à jour. Comme rien n'est envoyé tant que vous n'avez pas appliqué les couleurs, vous pouvez définir plusieurs groupes ou lampes individuelles et les faire changer en même temps. Les couleurs préparées restent en vigueur après leur application; pour modifier un groupe plus tard, il vous suffit donc de préparer la nouvelle couleur de ce groupe et de l'appliquer de nouveau.

Le paramètre *groupOrderIndex* est interprété comme suit.

| Valeur de *groupOrderIndex* | Lampes sélectionnées |
| - | - |
| `GAMEINPUT_LIGHTING_GROUP_ORDER_INDEX_ALL` (0xFFFFFFFF) | Toutes les lampes de *group*. |
| Un code de balayage du clavier, lorsque *group* vaut `GameInputLightingGroupKeyboardKey` | La lampe de la touche ayant ce code de balayage. Le code de balayage utilise l'encodage Set 1 : de 0x01 à 0x7F, codes de balayage étendus de 0xE001 à 0xE07F, ou 0xE11D pour la touche Pause. |
| Toute autre valeur | La lampe à cette position de base zéro dans *group*. La valeur doit être inférieure à la valeur retournée par [IGameInputDevice::GetSupportedLightingGroupSize](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroupsize.md) pour *group*. |

Une sélection qui combine `GameInputLightingGroupKeyboardKey` avec d'autres groupes nommés ne peut pas sélectionner une lampe individuelle, car l'index serait ambigu. Utilisez `GAMEINPUT_LIGHTING_GROUP_ORDER_INDEX_ALL` avec de telles sélections. `GameInputLightingGroupAll` peut sélectionner une lampe individuelle par sa position de base zéro parmi toutes les lampes du périphérique.

Si la sélection n'est pas valide pour le périphérique, l'appel est ignoré et rien n'est préparé. Une sélection n'est pas valide si elle inclut un groupe nommé que le périphérique ne possède pas (consultez [IGameInputDevice::GetSupportedLightingGroups](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroups.md)), si elle ne contient aucune lampe, ou si elle spécifie un *groupOrderIndex* hors plage ou qui n'est pas un code de balayage valide. Les appels effectués sur un périphérique déconnecté n'ont aucun effet.

Pour abandonner les couleurs préparées et rétablir le comportement par défaut des lampes, appelez [IGameInputDevice::ApplyLightingSystemDefault](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingsystemdefault.md).

L'exemple suivant définit les boutons frontaux d'une manette en rouge et son voyant central en bleu, puis applique les deux couleurs en une seule mise à jour.

```cpp theme={null}
void SetControllerLighting(IGameInputDevice* device) noexcept
{
    const GameInputLightingGroups groups = device->GetSupportedLightingGroups();

    if ((groups & GameInputLightingGroupFaceButtons) != 0)
    {
        device->SetLightingColor({ 255, 0, 0 }, GameInputLightingGroupFaceButtons);
    }

    if ((groups & GameInputLightingGroupCenterLight) != 0)
    {
        device->SetLightingColor({ 0, 0, 255 }, GameInputLightingGroupCenterLight);
    }

    device->ApplyLightingColors();
}
```

L'exemple suivant atténue toutes les touches d'un clavier doté d'un éclairage par touche et met en évidence la touche A, dont le code de balayage Set 1 est 0x1E.

```cpp theme={null}
void HighlightKeyA(IGameInputDevice* device) noexcept
{
    if ((device->GetSupportedLightingGroups() & GameInputLightingGroupKeyboardKey) == 0)
    {
        return;
    }

    device->SetLightingColor({ 16, 16, 16 }, GameInputLightingGroupKeyboardKey);
    device->SetLightingColor({ 0, 255, 0 }, GameInputLightingGroupKeyboardKey, 0x1E);
    device->ApplyLightingColors();
}
```

> [!NOTE]
>
> La prise en charge de l'éclairage dépend du périphérique et de la plateforme. Actuellement, GameInput prend en charge l'éclairage sur les périphériques Windows Dynamic Lighting (LampArray) et sur la barre lumineuse des manettes DualSense.

## Configuration requise

**En-tête :** GameInput.h

**Bibliothèque :** gameinput.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[Vue d'ensemble de GameInput](https://docs.xbox.com/fr-CA/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputDevice](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)\
[GameInputColor](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/input/gameinput/structs/gameinputcolor)\
[GameInputLightingGroups](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/input/gameinput/enums/gameinputlightinggroups)\
[IGameInputDevice::ApplyLightingColors](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingcolors.md)\
[IGameInputDevice::ApplyLightingSystemDefault](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingsystemdefault.md)\
[IGameInputDevice::GetSupportedLightingGroups](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroups.md)\
[IGameInputDevice::GetSupportedLightingGroupSize](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroupsize.md)

## Historique des versions

| Version | Modifications |
| - | - |
| **v4** | Introduit. |


## Related topics

- [IGameInputDevice::ApplyLightingColors](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingcolors.md)
- [IGameInputDevice::ApplyLightingSystemDefault](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingsystemdefault.md)
- [IGameInputDevice::GetSupportedLightingGroups](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroups.md)
- [IGameInputDevice::GetSupportedLightingGroupSize](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroupsize.md)
- [Membres de l'API GameInput](https://docs.xbox.com/fr-CA/reference/input/gameinput/gameinput_members.md)
