> ## 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

> Prepara un color para una o varias lámparas del dispositivo de entrada.

Prepara un color para una o varias lámparas del dispositivo de entrada. El color se envía al dispositivo la próxima vez que llame a [IGameInputDevice::ApplyLightingColors](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingcolors.md).

## Sintaxis

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

### Parámetros

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

El color que se va a preparar para las lámparas seleccionadas.

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

La selección de grupos de iluminación que contiene las lámparas que se van a establecer. Puede ser una o varias marcas de grupo con nombre, `GameInputLightingGroupAll` para seleccionar todas las lámparas del dispositivo o `GameInputLightingGroupUnknown` para seleccionar las lámparas que no pertenecen a ningún grupo con nombre.

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

Selecciona una lámpara individual dentro de *group*. El valor predeterminado, `GAMEINPUT_LIGHTING_GROUP_ORDER_INDEX_ALL`, selecciona todas las lámparas de *group*. Consulte la sección Comentarios para saber cómo se interpretan otros valores.

### Valor devuelto

Tipo: void

## Comentarios

`SetLightingColor` no cambia las lámparas inmediatamente. Registra (prepara) el color para las lámparas seleccionadas. Llame a [IGameInputDevice::ApplyLightingColors](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingcolors.md) para enviar todos los colores preparados al dispositivo en una sola actualización. Como no se envía nada hasta que se aplican los colores, puede establecer varios grupos o lámparas individuales y hacer que cambien al mismo tiempo. Los colores preparados siguen en vigor después de aplicarse, por lo que, para cambiar un grupo más adelante, solo tiene que preparar el nuevo color para ese grupo y volver a aplicarlo.

El parámetro *groupOrderIndex* se interpreta de la siguiente manera.

| Valor de *groupOrderIndex* | Lámparas seleccionadas |
| - | - |
| `GAMEINPUT_LIGHTING_GROUP_ORDER_INDEX_ALL` (0xFFFFFFFF) | Todas las lámparas de *group*. |
| Un código de exploración del teclado, cuando *group* es `GameInputLightingGroupKeyboardKey` | La lámpara de la tecla con ese código de exploración. El código de exploración usa la codificación Set 1: de 0x01 a 0x7F, los códigos de exploración extendidos de 0xE001 a 0xE07F, o 0xE11D para la tecla Pausa. |
| Cualquier otro valor | La lámpara que se encuentra en esa posición de base cero dentro de *group*. El valor debe ser menor que el valor devuelto por [IGameInputDevice::GetSupportedLightingGroupSize](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroupsize.md) para *group*. |

Una selección que combina `GameInputLightingGroupKeyboardKey` con otros grupos con nombre no puede seleccionar una lámpara individual, porque el índice sería ambiguo. Use `GAMEINPUT_LIGHTING_GROUP_ORDER_INDEX_ALL` con esas selecciones. `GameInputLightingGroupAll` puede seleccionar una lámpara individual por su posición de base cero entre todas las lámparas del dispositivo.

Si la selección no es válida para el dispositivo, la llamada se omite y no se prepara nada. Una selección no es válida si incluye un grupo con nombre que el dispositivo no tiene (consulte [IGameInputDevice::GetSupportedLightingGroups](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroups.md)), no contiene lámparas o especifica un valor de *groupOrderIndex* que está fuera del intervalo o que no es un código de exploración válido. Las llamadas en un dispositivo desconectado no tienen ningún efecto.

Para descartar los colores preparados y devolver las lámparas a su comportamiento predeterminado, llame a [IGameInputDevice::ApplyLightingSystemDefault](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingsystemdefault.md).

En el siguiente ejemplo se establecen en rojo los botones frontales de un mando y en azul su luz central, y luego se aplican ambos colores en una sola actualización.

```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();
}
```

En el siguiente ejemplo se atenúan todas las teclas de un teclado con iluminación por tecla y se resalta la tecla A, que tiene el código de exploración Set 1 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 compatibilidad con la iluminación depende del dispositivo y de la plataforma. Actualmente, GameInput admite la iluminación en dispositivos con Iluminación dinámica de Windows (LampArray) y en la barra de luz de los mandos DualSense.

## Requisitos

**Encabezado:** GameInput.h

**Biblioteca:** gameinput.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

[Información general de GameInput](https://docs.xbox.com/es/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputDevice](https://docs.xbox.com/es/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/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingcolors.md)\
[IGameInputDevice::ApplyLightingSystemDefault](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_applylightingsystemdefault.md)\
[IGameInputDevice::GetSupportedLightingGroups](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroups.md)\
[IGameInputDevice::GetSupportedLightingGroupSize](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedlightinggroupsize.md)

## Historial de versiones

| Versión | Cambios |
| - | - |
| **v4** | Se introdujo. |


## Related topics

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