> ## 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 (famille XBOX One)

> Planifie un événement à signaler une ou plusieurs fois au cours d'une image.

Planifie un événement à signaler une ou plusieurs fois au cours d'une image.

## Syntaxe

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

### Paramètres

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

Type de l'événement à planifier.

*IntervalOffsetInMicroseconds*   \_In\_\
Type : UINT

Décalage temporel auquel l'événement spécifié doit être planifié; le décalage est spécifié en microsecondes à partir du début de l'intervalle d'image. Les décalages planifiés ne sont pris en charge que pour les événements qui les prennent en charge, comme l'événement d'origine.

*pAncillarySignalList*   \_In\_opt\_\
Type : [D3D12XBOX\_SCHEDULE\_FRAME\_OBJECT\_LIST](/fr-CA/reference/graphics/d3d12_x/structs/d3d12xbox_schedule_frame_object_list)\*

Liste facultative de jusqu'à sept (7) événements auxiliaires à signaler chaque fois que l'événement d'image planifié se produit.

*Flags*   \_In\_\
Type : [D3D12XBOX\_SCHEDULE\_FRAME\_EVENT\_FLAGS](/fr-CA/reference/graphics/d3d12_x/enums/d3d12xbox_schedule_frame_event_flags)

Indicateurs utilisés pour fournir un contrôle supplémentaire sur l'événement planifié. [D3D12XBOX\_SCHEDULE\_FRAME\_EVENT\_FLAG\_DISABLE\_SIGNAL](/fr-CA/reference/graphics/d3d12_x/enums/d3d12xbox_schedule_frame_event_flags) peut être utilisé pour désactiver un signal planifié précédemment pour les types autres que l'origine, qui, une fois établie, ne peut jamais être désactivée.

## Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

Retourne E\_INVALIDARG pour les types d'événements, les décalages d'intervalle, les listes de signaux et les valeurs d'indicateurs non valides.

Retourne E\_INVALIDARG si aucun intervalle d'image n'a été établi avant la tentative de planification d'un événement.

## Remarques

La méthode [WaitFrameEventX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_waitframeeventx) peut être utilisée pour bloquer sur un événement d'image planifié ou pour l'interroger. Les événements doivent être replanifiés au moyen d'un nouvel appel à *ScheduleFrameEventX* chaque fois que l'intervalle ou la période d'image a été modifié par un appel à [SetFrameIntervalX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_setframeintervalx).

L'événement d'origine d'image est planifié pour fournir un contrôle précis de l'heure de début d'une image et ainsi permettre de réduire au minimum la latence du pipeline. Le système tente de synchroniser l'échantillonnage par le microprogramme des entrées de la manette avec l'heure d'origine d'image établie, de manière à ce que les données d'entrée soient acquises juste à temps pour le début de l'image. En interrogeant les entrées immédiatement après la signalisation de l'événement d'origine, l'application obtiendra les informations de stimulus les plus à jour sur lesquelles le rendu de l'image sera basé. Le décalage entre l'entrée de l'utilisateur et l'affichage sera réduit au minimum si un décalage d'origine d'image est sélectionné le plus près possible du moment du VBlank de l'affichage cible.

Le temps CPU et le temps GPU nécessaires pour produire une image (ainsi que le degré de chevauchement en pipeline) varient au cours de la durée de vie de l'application. En réponse à la rétroaction des statistiques d'image, des mises à jour de la planification du décalage de l'origine d'image sont effectuées fréquemment afin de préserver une latence minimale.

Utilisez continuellement la méthode [GetFrameStatisticsX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_getframestatisticsx) pour surveiller la durée de l'image, depuis le signal d'origine jusqu'au moment de l'écriture finale dans les ressources d'échange d'image et de leur présentation. Ensuite, planifiez l'événement d'origine avec des mises à jour de son décalage afin que les ressources d'échange soient terminées et présentées le plus près possible de leur VBlank d'affichage cible, avec une certaine marge pour se protéger contre les pics de durée d'image. L'objectif général est de planifier l'heure du décalage d'origine pour qu'elle soit égale à [PeriodInIntervals](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_setframeintervalx) x [LengthInMicroseconds](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_setframeintervalx) de l'intervalle d'image - *measured\_frame\_duration* - *margin\_for\_variance*.

L'événement d'origine tire parti, en interne, de l'interruption vline pour effectuer sa planification basée sur le décalage d'intervalle; la granularité dépend donc de la résolution d'affichage actuelle.

Au-delà de l'origine d'image, des événements supplémentaires peuvent être planifiés pour suivre les occurrences de VBlank et de basculement. Contrairement à l'origine, cependant, ces événements sont planifiés comme de simples notifications, sans contrôle direct sur la synchronisation. Aussi contrairement à l'origine, les événements VBlank et de basculement peuvent être signalés plusieurs fois par intervalle d'image.

Le premier appel pour planifier un événement d'image est appliqué immédiatement. Les mises à jour subséquentes des événements planifiés, y compris leur désactivation, sont mises en pipeline avec la présentation de manière à ce que les modifications apportées au cours d'un intervalle soient appliquées lorsque la prochaine image présentée est basculée vers l'affichage.

## Configuration requise

**En-tête :** d3d12\_x.h

**Bibliothèque :** d3d12\_x.lib

**Plateformes prises en charge :** famille XBOX One

## Voir aussi

[ID3D12Device](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [XAsyncSchedule](/reference/system/xasyncprovider/functions/xasyncschedule.md)
- [Documentation de développement de jeux XBOX](/fr-CA/index.md)
- [NDA topic directory - live Microsoft Learn links](/nda/nda-topic-directory.md)
