> ## 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 lors du prochain appel à [IGameInputDevice::ApplyLightingColors](https://docs.xbox.com/fr/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)

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)

Sélection de groupes d'éclairage qui contient les lampes à définir. Il peut s'agir d'un ou de plusieurs indicateurs de groupe nommé, 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 immédiatement les lampes. Elle enregistre (prépare) la couleur des lampes sélectionnées. Appelez [IGameInputDevice::ApplyLightingColors](https://docs.xbox.com/fr/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'appliquez pas 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 ultérieurement un groupe, il vous suffit donc de préparer la nouvelle couleur pour 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 correspondant à 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 située à 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/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 ce type de sélection. `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é dont le périphérique ne dispose pas (consultez [IGameInputDevice::GetSupportedLightingGroups](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroups.md)), si elle ne contient aucune lampe, ou si elle spécifie un *groupOrderIndex* hors limites ou qui n'est pas un code de balayage valide. Les appels sur un périphérique déconnecté n'ont aucun effet.

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

L'exemple suivant définit en rouge les boutons de façade d'une manette et en bleu son voyant central, 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 surbrillance 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 des périphériques Windows Dynamic Lighting (LampArray) et de 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/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputDevice](https://docs.xbox.com/fr/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/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingcolors.md)\
[IGameInputDevice::ApplyLightingSystemDefault](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingsystemdefault.md)\
[IGameInputDevice::GetSupportedLightingGroups](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroups.md)\
[IGameInputDevice::GetSupportedLightingGroupSize](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroupsize.md)

## Historique des versions

| Version | Modifications |
| - | - |
| **v4** | Introduite. |


## Related topics

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