D3DKMT_RENDER structure (d3dkmthk.h)

La structure D3DKMT_RENDER décrit la mémoire tampon de commandes 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

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

[in] hContext

Un D3DKMT_HANDLE type de données qui représente un handle en mode noyau pour le contexte d’appareil dans lequel la mémoire tampon de commande est rendue.

[in] CommandOffset

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

[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 du correctif envoyé.

[out] pNewCommandBuffer

Pointeur vers une mémoire tampon de commandes que le ICD OpenGL reçoit pour l’utiliser lors de son prochain appel à la fonction D3DKMTRender . Le pilote doit toujours mettre à jour son pointeur vers la mémoire tampon de commande après tout appel à D3DKMTRender , que l’appel ait réussi ou non.

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 .

[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 le membre Flags . Si ResizeCommandBuffer n’est pas spécifié, la valeur dans NewCommandBufferSize est ignorée. Lors de la sortie, le pilote reçoit la taille, en octets, de la mémoire tampon de commandes 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’OpenGL ICD reçoit pour l’utiliser 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 tout appel à D3DKMTRender , que l’appel soit réussi ou non.

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 demandés par openGL ICD pour la liste d’allocation suivante si l’indicateur de champ binaire ResizeAllocationList est spécifié dans le membre Flags . Si ResizeAllocationList n’est pas spécifié, la valeur dans NewAllocationListSize est ignorée. Lors de la sortie, le pilote reçoit le nombre d’éléments qui seront disponibles dans un tableau d’allocations lors de l’envoi de la mémoire tampon de commande suivante.

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 l’utiliser comme liste d’emplacements de correctif dans son prochain appel à la fonction D3DKMTRender . Le pilote doit toujours mettre à jour son pointeur vers la liste des emplacements du correctif après tout appel à D3DKMTRender , que l’appel ait réussi ou non.

[in/out] NewPatchLocationListSize

Nombre d’éléments demandés par openGL ICD pour la liste d’emplacement de correctif suivant si l’indicateur de champ de bits ResizePatchLocationList est spécifié dans le membre Flags . Si ResizePatchLocationList n’est pas spécifié, la valeur dans NewPatchLocationListSize est ignorée. Lors de la sortie, le pilote reçoit le nombre d’éléments qui seront disponibles dans un tableau d’emplacements de correctif lors de l’envoi de la mémoire tampon de commande suivante.

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

[in] Flags

Un D3DKMT_RENDERFLAGS structure 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 spécifié par BroadcastContext .

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

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

Le contexte d’origine que le membre hContext spécifie et qui possède la mémoire tampon de commandes n’est pas un élément du tableau BroadcastContext . Par exemple, si le tableau BroadcastContext contient un élément, openGL ICD envoie la mémoire tampon de commande au contexte de propriétaire (hContext) et diffuse vers 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 commandes que le ICD OpenGL reçoit pour l’utiliser lors de son prochain appel à la fonction D3DKMTRender . Le pilote doit toujours mettre à jour son pointeur vers la mémoire tampon de commande après tout appel à D3DKMTRender , que l’appel ait réussi ou non.

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 .

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.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
En-tête d3dkmthk.h (include D3dkmthk.h)

Voir aussi

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent