Partager via


structure D3DKMT_RENDER (d3dkmthk.h)

La structure D3DKMT_RENDER décrit la mémoire tampon de commande actuelle à afficher.

Syntaxe

typedef struct _D3DKMT_RENDER {
  union {
    [in]     D3DKMT_HANDLE hDevice;
    [in]     D3DKMT_HANDLE hContext;
  };
  [in]     UINT                                  CommandOffset;
  [in]     UINT                                  CommandLength;
  [in]     UINT                                  AllocationCount;
  [in]     UINT                                  PatchLocationCount;
  [out]    VOID                                  *pNewCommandBuffer;
  [in/out] UINT                                  NewCommandBufferSize;
  [out]    D3DDDI_ALLOCATIONLIST                 *pNewAllocationList;
  [in/out] UINT                                  NewAllocationListSize;
  [out]    D3DDDI_PATCHLOCATIONLIST              *pNewPatchLocationList;
  [in/out] UINT                                  NewPatchLocationListSize;
  [in]     D3DKMT_RENDERFLAGS                    Flags;
  [in]     D3DKMT_ALIGN64 ULONGLONG              PresentHistoryToken;
  [in]     ULONG                                 BroadcastContextCount;
           D3DKMT_HANDLE                         BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  [out]    ULONG                                 QueuedBufferCount;
  [out]    D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS NewCommandBuffer;
           VOID                                  *pPrivateDriverData;
           UINT                                  PrivateDriverDataSize;
} D3DKMT_RENDER;

Membres

[in] hDevice

Type de données D3DKMT_HANDLE qui représente un handle en mode noyau sur l’appareil dans lequel la mémoire tampon de commande est rendue. Un handle d’appareil est fourni à la fonction D3DKMTRender dans l’union qui D3DKMT_RENDER contient pour la compatibilité avec Microsoft Direct3D version 10.

[in] hContext

Type de données D3DKMT_HANDLE qui représente un handle en mode noyau vers le contexte de l’appareil dans lequel la mémoire tampon de commande est rendue.

[in] CommandOffset

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

[in] CommandLength

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

[in] AllocationCount

Nombre d’éléments dans la liste d’allocation envoyée.

[in] PatchLocationCount

Nombre d’éléments dans la liste d’emplacements des correctifs envoyés.

[out] pNewCommandBuffer

Pointeur vers une mémoire tampon de commande que l’ICD OpenGL reçoit pour l’utiliser dans son prochain appel à la fonction D3DKMTRender. Le pilote doit toujours mettre à jour son pointeur vers la mémoire tampon de commande après un appel à D3DKMTRender indépendamment de la réussite de l’appel.

Pris en charge dans Windows 7 et versions ultérieures :

[in] Pointeur vers la mémoire tampon de commande à afficher si l’indicateur RenderKm est défini dans le membre indicateurs de .

[in/out] NewCommandBufferSize

Taille, en octets, que l’ICD OpenGL demande pour la mémoire tampon de commande suivante si l’indicateur de champ binaire ResizeCommandBuffer est spécifié dans les indicateurs de membre. Si ResizeCommandBuffer n’est pas spécifié, la valeur de NewCommandBufferSize est ignorée. En sortie, le pilote reçoit la taille, en octets, de la mémoire tampon de commande suivante à utiliser.

Selon les conditions de mémoire actuelles, la taille de sortie peut ne pas correspondre à la taille d’entrée.

[out] pNewAllocationList

Tableau de structures D3DDDI_ALLOCATIONLIST que l’ICD OpenGL reçoit pour être utilisées comme liste d’allocation dans son prochain appel à la fonction D3DKMTRender. Le pilote doit toujours mettre à jour son pointeur vers la liste d’allocation après un appel à D3DKMTRender indépendamment de la réussite de l’appel.

Pris en charge dans Windows 7 et versions ultérieures :

[in] Pointeur vers la liste d’allocation à afficher si l’indicateur RenderKm est défini dans le membre Flags.

[in/out] NewAllocationListSize

Nombre d’éléments que l’ICD OpenGL demande pour la liste d’allocation suivante si l’indicateur ResizeAllocationList bit-field est spécifié dans les indicateurs membre. Si ResizeAllocationList n’est pas spécifié, la valeur de NewAllocationListSize est ignorée. En sortie, le pilote reçoit le nombre d’éléments qui seront disponibles dans un tableau d’allocations lorsque la mémoire tampon de commande suivante est envoyée.

Selon les conditions de mémoire actuelles, la taille de sortie peut ne pas correspondre à la taille d’entrée.

[out] pNewPatchLocationList

Tableau de structures D3DDDI_PATCHLOCATIONLIST que l’ICD OpenGL reçoit pour être utilisées comme liste d’emplacements correctives dans son prochain appel à la fonction D3DKMTRender. Le pilote doit toujours mettre à jour son pointeur vers la liste d’emplacements correctives après un appel à D3DKMTRender que l’appel réussisse.

[in/out] NewPatchLocationListSize

Nombre d’éléments que l’ICD OpenGL demande pour la liste d’emplacements correctives suivante si l’indicateur de champ bit ResizePatchLocationList est spécifié dans les indicateurs de membre. Si ResizePatchLocationList n’est pas spécifié, la valeur de NewPatchLocationListSize est ignorée. En sortie, le pilote reçoit le nombre d’éléments qui seront disponibles dans un tableau d’emplacements de correctifs lorsque la mémoire tampon de commande suivante est envoyée.

Selon les conditions de mémoire actuelles, la taille de sortie peut ne pas correspondre à la taille d’entrée.

[in] Flags

Structure D3DKMT_RENDERFLAGS qui indique le type de mémoire tampon de commande, dans les indicateurs de champ binaire, à afficher.

[in] PresentHistoryToken

Jeton d’historique actuel pour les appels redirigés vers la fonction DxgkDdiPresent du pilote miniport d’affichage.

Un jeton d’historique actuel est un paquet de données que l’application de rendu envoie pour informer le Gestionnaire de fenêtres du bureau (DWM) que le rendu est terminé et que la mémoire tampon de retour de la chaîne d’échange est prête à être présentée.

[in] BroadcastContextCount

Nombre de contextes supplémentaires dans le tableau qui BroadcastContext spécifie.

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

Tableau de types de données D3DKMT_HANDLE qui représentent des handles en mode noyau vers les contextes supplémentaires pour diffuser la mémoire tampon de commande actuelle vers. La constante D3DDDI_MAX_BROADCAST_CONTEXT, définie comme 64, définit le nombre maximal de contextes vers lesquels l’ICD OpenGL peut diffuser la mémoire tampon de commande actuelle.

Contexte d’origine spécifié par le membre hContext et propriétaire 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, l’ICD OpenGL envoie la mémoire tampon de commande au contexte propriétaire (hContext) et diffuse à ce contexte supplémentaire.

[out] QueuedBufferCount

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

[out] NewCommandBuffer

Pointeur vers une mémoire tampon de commande que l’ICD OpenGL reçoit pour l’utiliser dans son prochain appel à la fonction D3DKMTRender. Le pilote doit toujours mettre à jour son pointeur vers la mémoire tampon de commande après un appel à D3DKMTRender indépendamment de la réussite de l’appel.

Pris en charge dans Windows 7 et versions ultérieures :

[in] Pointeur vers la mémoire tampon de commande à afficher si l’indicateur RenderKm est défini dans le membre indicateurs de .

pPrivateDriverData

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

Ce membre est disponible à partir de Windows 7.

PrivateDriverDataSize

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

Ce membre est disponible à partir de Windows 7.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
d’en-tête d3dkmthk.h (include D3dkmthk.h)

Voir aussi

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent