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

# ScheduleFrameEventX (família XBOX One)

> Agenda um evento para ser sinalizado uma ou mais vezes dentro de um quadro.

Agenda um evento para ser sinalizado uma ou mais vezes dentro de um quadro.

## Sintaxe

```cpp theme={null}
HRESULT ScheduleFrameEventX(
        D3D12XBOX_FRAME_EVENT_TYPE Type,
        UINT IntervalOffsetInMicroseconds,
        D3D12XBOX_SCHEDULE_FRAME_OBJECT_LIST* pAncillarySignalList,
        D3D12XBOX_SCHEDULE_FRAME_EVENT_FLAGS Flags)
```

### Parâmetros

*Type*   \_In\_\
Tipo: [D3D12XBOX\_FRAME\_EVENT\_TYPE](/pt-BR/reference/graphics/d3d12_x/enums/d3d12xbox_frame_event_type)

Tipo de evento a ser agendado.

*IntervalOffsetInMicroseconds*   \_In\_\
Tipo: UINT

Deslocamento de tempo no qual o evento especificado deve ser agendado; o deslocamento é especificado em microssegundos a partir do início do intervalo de quadro. Deslocamentos agendados são compatíveis somente com eventos que os suportam, como o evento de origem.

*pAncillarySignalList*   \_In\_opt\_\
Tipo: [D3D12XBOX\_SCHEDULE\_FRAME\_OBJECT\_LIST](/pt-BR/reference/graphics/d3d12_x/structs/d3d12xbox_schedule_frame_object_list)\*

Lista opcional de até sete (7) eventos auxiliares a serem sinalizados sempre que o evento de quadro agendado ocorrer.

*Flags*   \_In\_\
Tipo: [D3D12XBOX\_SCHEDULE\_FRAME\_EVENT\_FLAGS](/pt-BR/reference/graphics/d3d12_x/enums/d3d12xbox_schedule_frame_event_flags)

Sinalizadores usados para fornecer controle adicional sobre o evento agendado. [D3D12XBOX\_SCHEDULE\_FRAME\_EVENT\_FLAG\_DISABLE\_SIGNAL](/pt-BR/reference/graphics/d3d12_x/enums/d3d12xbox_schedule_frame_event_flags) pode ser usado para desabilitar um sinal agendado anteriormente para tipos diferentes da origem, que, uma vez estabelecida, nunca pode ser desabilitada.

## Valor retornado

Tipo: HRESULT

Código de êxito ou de erro HRESULT.

Retorna E\_INVALIDARG para tipos de evento, deslocamentos de intervalo, listas de sinais e valores de sinalizador inválidos.

Retorna E\_INVALIDARG se um intervalo de quadro não tiver sido estabelecido antes da tentativa de agendar um evento.

## Comentários

O método [WaitFrameEventX](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_waitframeeventx) pode ser usado para bloquear ou sondar um evento de quadro agendado. Os eventos devem ser reagendados com uma nova chamada a *ScheduleFrameEventX* sempre que o intervalo ou o período de quadro for alterado por meio de uma chamada a [SetFrameIntervalX](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_setframeintervalx).

O evento de origem do quadro é agendado para fornecer um controle refinado sobre o horário de início de um quadro e, assim, permitir a minimização da latência do pipeline. O sistema tenta sincronizar a amostragem de firmware da entrada do gamepad com o horário de origem do quadro estabelecido, de forma que os dados de entrada sejam adquiridos bem a tempo do início do quadro. Ao consultar a entrada imediatamente após a sinalização do evento de origem, o aplicativo obterá as informações de estímulo mais atualizadas nas quais a renderização do quadro será baseada. O atraso entre a entrada do usuário e a exibição será minimizado se um deslocamento de origem do quadro for selecionado o mais próximo possível do momento do VBlank de exibição de destino.

O tempo de CPU e o tempo de GPU necessários para produzir um quadro (assim como o grau de sobreposição em pipeline) variam ao longo do tempo de vida do aplicativo. Em resposta aos comentários das estatísticas de quadro, atualizações no agendamento do deslocamento da origem do quadro são feitas com frequência para preservar uma latência mínima.

Use continuamente o método [GetFrameStatisticsX](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_getframestatisticsx) para monitorar a duração do quadro desde o sinal de origem até o momento da gravação final nos recursos de troca do quadro e sua apresentação. Depois disso, agende o evento de origem com atualizações em seu deslocamento para que os recursos de troca sejam concluídos e apresentados o mais próximo possível do VBlank de exibição de destino, com alguma margem para proteger contra picos na duração do quadro. O objetivo geral é agendar o horário de deslocamento da origem para que seja igual a [PeriodInIntervals](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_setframeintervalx) x [LengthInMicroseconds](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_setframeintervalx) do intervalo de quadro - *measured\_frame\_duration* - *margin\_for\_variance*.

O evento de origem utiliza internamente a interrupção de vline para realizar seu agendamento baseado em deslocamento de intervalo; portanto, a granularidade depende da resolução de exibição atual.

Além da origem do quadro, eventos adicionais podem ser agendados para acompanhar ocorrências de VBlank e inversão. Diferentemente da origem, no entanto, esses eventos são agendados como meras notificações, sem controle direto sobre o tempo. Também diferentemente da origem, os eventos de VBlank e de inversão podem ser sinalizados várias vezes por intervalo de quadro.

A primeira chamada para agendar um evento de quadro é aplicada imediatamente. Atualizações subsequentes nos eventos agendados, incluindo a desabilitação, são colocadas em pipeline com a apresentação, de forma que as alterações feitas dentro de um intervalo sejam aplicadas quando o próximo quadro apresentado for invertido para a tela.

## Requisitos

**Cabeçalho:** d3d12\_x.h

**Biblioteca:** d3d12\_x.lib

**Plataformas com suporte:** família XBOX One

## Confira também

[ID3D12Device](/pt-BR/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

- [XAsyncSchedule](/es/reference/system/xasyncprovider/functions/xasyncschedule.md)
- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [Directorio de temas NDA: enlaces activos a Microsoft Learn](/es/nda/nda-topic-directory.md)
- [game_chat_data_frame](/es/reference/chat/gamechat2/structs/game_chat_data_frame.md)
- [ACP_MESSAGE_AUDIO_FRAME_START](/es/reference/audio/acphal/structs/acp_message_audio_frame_start.md)
