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

# XGameStreamingGetLastFrameDisplayed

> XGameStreamingGetLastFrameDisplayed

# XGameStreamingGetLastFrameDisplayed

<Info>**En desuso.** Esta API está en desuso a partir de la versión 2604 del GDK y se quitará en una versión futura del GDK. No hay ninguna API de reemplazo: los títulos deben usar [XGameStreamingGetStreamAddedLatency](/reference/system/xgamestreaming/functions/xgamestreaminggetstreamaddedlatency) en su lugar para realizar ajustes de juego que tengan en cuenta la latencia.</Info>

Obtiene el token de la canalización de fotogramas del fotograma que se mostró más recientemente en la pantalla del cliente de streaming.

## Sintaxis

```cpp theme={null}
HRESULT XGameStreamingGetLastFrameDisplayed(  
         XGameStreamingClientId client,  
         D3D12XBOX_FRAME_PIPELINE_TOKEN* framePipelineToken  
)  
```

### Parámetros

*client*   \_In\_\
Tipo: XGameStreamingClientId

El identificador del dispositivo cliente de streaming que se está consultando.

*framePipelineToken*   \_Out\_\
Tipo: D3D12XBOX\_FRAME\_PIPELINE\_TOKEN\*

El token de la canalización de fotogramas que se mostró por última vez en el dispositivo cliente.

### Valor devuelto

Tipo: HRESULT

Devuelve **S\_OK** si se realiza correctamente; de lo contrario, devuelve un código de error.

#### Posibles errores

| Código de error                          | Valor de error | Motivo del error                                                                                                                                                                                      |
| ---------------------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| E\_GAMESTREAMING\_NOT\_INITIALIZED       | 0x89245400     | El entorno de ejecución de XGameStreaming no se ha inicializado. Llame a [XGameStreamingInitialize](/reference/system/xgamestreaming/functions/xgamestreaminginitialize) antes de llamar a otras API. |
| E\_GAMESTREAMING\_CLIENT\_NOT\_CONNECTED | 0x89245401     | El cliente especificado no está conectado.                                                                                                                                                            |
| E\_GAMESTREAMING\_NO\_DATA               | 0x89245402     | Los datos solicitados no están disponibles. Es posible que los datos estén disponibles más adelante.                                                                                                  |

## Comentarios

Cuando un jugador está transmitiendo un juego, se puede utilizar `XGameStreamingGetLastFrameDisplayed` si el juego necesita cambiar su comportamiento tras confirmar que un fotograma determinado se mostró en la pantalla del usuario.

Algunos ejemplos de cuándo un juego puede utilizar esto incluyen:

* Un temporizador visual ha expirado y el jugador no realizó ninguna acción antes de la expiración.
* No se realizó una acción dentro del intervalo adecuado.
* Un jugador continuó su movimiento fuera de los límites y no realizó ninguna acción para recuperarse.

`XGameStreamingGetLastFrameDisplayed` debe usarse cuando se intenta determinar cuándo debería haberse realizado una acción, pero no se realizó. En el caso de que el juego necesite determinar qué se estaba mostrando cuando el jugador **sí** realizó una entrada, el juego debe utilizar [XGameStreamingGetAssociatedFrame](/reference/system/xgamestreaming/functions/xgamestreaminggetassociatedframe).

## Ejemplo

```C++ theme={null}
// In this example, when processing input, the game would like to pass along the last frame 
// that was being displayed to the player so that their simulation engine can take that into account.
 

// The framePipelineToken was initially captured at the callback of WaitFrameEventX

void Game::Update(DX::StepTimer const& timer)
{
    ...

    D3D12XBOX_FRAME_PIPELINE_TOKEN framePipelineToken = D3D12XBOX_FRAME_PIPELINE_TOKEN_NULL;
    if SUCCEEDED(XGameStreamingGetLastFrameDisplayed(clientId, &framePipelineToken)
    {
        SimulateBasedOnLastFrameDisplayed(framePipelineToken);
    }
    else 
    {
        // don't have last token, potentially simulate based on current frame

        SimulateBasedOnCurrentFrame();
    }

    
      
    ...
}

```

## Requisitos

**Encabezado:** xgamestreaming.h

**Biblioteca:** xgameruntime.lib

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

## Documentación conceptual

* [Análisis en profundidad de la compensación de latencia en el streaming de juegos](/build/core-features/common/game-streaming/game-streaming-latency-compensation-deep-dive)

## Consulte también

[XGameStreamingGetAssociatedFrame](/reference/system/xgamestreaming/functions/xgamestreaminggetassociatedframe)\
[XGameStreaming](/reference/system/xgamestreaming/xgamestreaming_members#Latency)\
[Información general sobre la compensación de latencia en el streaming de juegos](/build/core-features/common/game-streaming/game-streaming-latency-compensation-overview)


## Related topics

- [XGameStreamingGetAssociatedFrame](/es/reference/system/xgamestreaming/functions/xgamestreaminggetassociatedframe.md)
- [Análisis en profundidad de la compensación de latencia en game streaming](/es/build/core-features/common/game-streaming/game-streaming-latency-compensation-deep-dive.md)
- [XGameStreaming](/es/reference/system/xgamestreaming/xgamestreaming_members.md)
- [Contenedores de API de C# de Unity para el GDK](/es/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [GetLastXmaFrameBitPosition](/es/reference/audio/xma2defs/functions/getlastxmaframebitposition.md)
