Partager via


structure D3DDDICB_RENDER (d3dumddi.h)

La structure D3DDDICB_RENDER décrit la mémoire tampon de commande actuelle à restituer.

Syntaxe

typedef struct _D3DDDICB_RENDER {
  UINT                     CommandLength;
  UINT                     CommandOffset;
  UINT                     NumAllocations;
  UINT                     NumPatchLocations;
  VOID                     *pNewCommandBuffer;
  UINT                     NewCommandBufferSize;
  D3DDDI_ALLOCATIONLIST    *pNewAllocationList;
  UINT                     NewAllocationListSize;
  D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
  UINT                     NewPatchLocationListSize;
  D3DDDICB_RENDERFLAGS     Flags;
  HANDLE                   hContext;
  UINT                     BroadcastContextCount;
  HANDLE                   BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  ULONG                    QueuedBufferCount;
  D3DGPU_VIRTUAL_ADDRESS   NewCommandBuffer;
  VOID                     *pPrivateDriverData;
  UINT                     PrivateDriverDataSize;
  D3DDDI_MARKERLOGTYPE     MarkerLogType;
  UINT                     RenderCBSequence;
  union {
    struct {
      UINT FirstAPISequenceNumberHigh;
      UINT CompletedAPISequenceNumberLow0Size;
      UINT CompletedAPISequenceNumberLow1Size;
      UINT BegunAPISequenceNumberLow0Size;
      UINT BegunAPISequenceNumberLow1Size;
    };
    UINT BatchedMarkerDataCount;
  };
  union {
    struct {
      const UINT *pCompletedAPISequenceNumberLow0;
      const UINT *pCompletedAPISequenceNumberLow1;
      const UINT *pBegunAPISequenceNumberLow0;
      const UINT *pBegunAPISequenceNumberLow1;
    };
    const D3DDDI_BATCHEDMARKERDATA *pBatchedMarkerData;
  };
} D3DDDICB_RENDER;

Membres

CommandLength

[in] Taille, en octets, de la mémoire tampon de commande, à partir du décalage zéro.

CommandOffset

[in] Décalage, en octets, de la première commande de la mémoire tampon de commande.

NumAllocations

[in] Nombre d’éléments dans la liste d’allocation.

NumPatchLocations

[in] Nombre d’éléments dans la liste de l’emplacement des correctifs.

pNewCommandBuffer

[out] Pointeur vers une mémoire tampon de commande que le pilote d’affichage en mode utilisateur reçoit pour l’utiliser lors de son prochain appel à la fonction pfnRenderCb .

NewCommandBufferSize

[in/out] Taille, en octets, que le pilote d’affichage en mode utilisateur demande pour la mémoire tampon de commande suivante.

Le pilote reçoit la taille, en octets, de la mémoire tampon de commande suivante à utiliser.

pNewAllocationList

[out] Tableau de D3DDDI_ALLOCATIONLIST structures que le pilote d’affichage en mode utilisateur reçoit pour utiliser comme liste d’allocation lors de son prochain appel à la fonction pfnRenderCb .

NewAllocationListSize

[in/out] Nombre d’éléments que le pilote d’affichage en mode utilisateur demande pour la liste d’allocation suivante.

Le pilote reçoit le nombre d’éléments de la liste d’allocation qui seront disponibles lors de l’envoi de la mémoire tampon de commande suivante.

pNewPatchLocationList

[out] Tableau de D3DDDI_PATCHLOCATIONLIST structures que le pilote d’affichage en mode utilisateur reçoit pour utiliser comme liste d’emplacement de correctif dans son prochain appel à la fonction pfnRenderCb .

NewPatchLocationListSize

[in/out] Nombre d’éléments demandés par le pilote d’affichage en mode utilisateur pour la liste de l’emplacement du correctif suivant.

Le pilote reçoit le nombre d’éléments de la liste d’emplacement de correctif qui seront disponibles lors de l’envoi de la mémoire tampon de commande suivante.

Flags

[in] Structure D3DDDICB_RENDERFLAGS qui indique des informations sur une mémoire tampon de commande à afficher.

hContext

[in] Handle du contexte auquel le pilote envoie l’opération de rendu. Le pilote d’affichage en mode utilisateur a précédemment créé ce contexte en appelant la fonction pfnCreateContextCb .

BroadcastContextCount

[in] Nombre de contextes supplémentaires dans le tableau spécifié par le membre BroadcastContext .

BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

[in] Tableau de handles vers les contextes supplémentaires vers ant la mémoire tampon de commande actuelle. La constante D3DDDI_MAX_BROADCAST_CONTEXT, qui est définie comme 64, définit le nombre maximal de contextes supplémentaires vers lesquels le pilote d’affichage en mode utilisateur peut diffuser la mémoire tampon de commande actuelle.

Le contexte d’origine spécifié par le membre hContext et qui possède la mémoire tampon de commande n’est pas un élément du tableau BroadcastContext . Par exemple, si le tableau BroadcastContext contient un élément, le pilote d’affichage en mode utilisateur envoie la mémoire tampon de commande au contexte propriétaire (hContext) et diffuse dans ce contexte supplémentaire.

QueuedBufferCount

[out] Nombre de mémoires tampons DMA mises en file d’attente vers le contexte spécifié par le membre hContext après la soumission actuelle.

NewCommandBuffer

Ce membre est réservé et doit être défini sur zéro.

Ce membre est disponible à partir de Windows 7.

pPrivateDriverData

[in] Ce membre est réservé et doit être défini sur zéro.

Ce membre est disponible à partir de Windows 7.

PrivateDriverDataSize

[in] Ce membre est réservé et doit être défini sur zéro.

Ce membre est disponible à partir de Windows 7.

MarkerLogType

Une énumération D3DDDI_MARKERLOGTYPE qui indique le type de marqueur dans le journal de suivi d’événements pour Windows (ETW) pris en charge par le pilote d’affichage en mode utilisateur.

RenderCBSequence

Identificateur unique pour chaque appel de fonction pfnRenderCb . Commence à la valeur 1 pour les contextes associés aux DDIs en mode utilisateur à thread unique et s’étend à une valeur de 0x80000001 pour les contextes associés aux DDIs en mode utilisateur à thread libre. Le pilote d’affichage en mode utilisateur doit incrémenter la valeur pour chaque appel pfnRenderCb qu’il effectue sur n’importe quel moteur.

FirstAPISequenceNumberHigh

Utilisé par le pilote pour transmettre le numéro de séquence d’API du contexte.

CompletedAPISequenceNumberLow0Size

Utilisé par le pilote pour transmettre le numéro de séquence d’API du contexte.

CompletedAPISequenceNumberLow1Size

Utilisé par le pilote pour transmettre le numéro de séquence d’API du contexte.

BegunAPISequenceNumberLow0Size

Utilisé par le pilote pour transmettre le numéro de séquence d’API du contexte.

BegunAPISequenceNumberLow1Size

Utilisé par le pilote pour transmettre le numéro de séquence d’API du contexte.

BatchedMarkerDataCount

pCompletedAPISequenceNumberLow0

Pointeur utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

pCompletedAPISequenceNumberLow1

Pointeur utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

pBegunAPISequenceNumberLow0

Pointeur utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

pBegunAPISequenceNumberLow1

Pointeur utilisé par le pilote pour passer le numéro de séquence d’API du contexte.

pBatchedMarkerData

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

D3DDDICB_RENDERFLAGS

D3DDDI_ALLOCATIONLIST

D3DDDI_PATCHLOCATIONLIST

pfnRenderCb