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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour