PFND3D11DDI_DRAWINSTANCEDINDIRECT fonction de rappel (d3d10umddi.h)

La fonction DrawInstancedIndirect dessine des instances particulières de primitives non indexées.

Syntaxe

PFND3D11DDI_DRAWINSTANCEDINDIRECT Pfnd3d11ddiDrawinstancedindirect;

void Pfnd3d11ddiDrawinstancedindirect(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HRESOURCE unnamedParam2,
  UINT unnamedParam3
)
{...}

Paramètres

unnamedParam1

hDevice [in]

Handle pour le périphérique d’affichage (contexte graphique).

unnamedParam2

hBufferForArgs [in]

Handle vers une mémoire tampon qui contient les arguments à traiter par DrawInstancedIndirect . La mémoire tampon contient la structure suivante :

struct DrawInstancedIndirectArgs {
  UINT VertexCountPerInstance; 
  UINT InstanceCount;
  UINT StartVertexLocation;
  UINT StartInstanceLocation;
}

Pour plus d’informations sur ces arguments, consultez la page de référence DrawInstanced .

unnamedParam3

AlignedByteOffsetForArgs [in]

Décalage, en octets, dans la mémoire tampon spécifiée par hBufferForArgs . AlignedByteOffsetForArgs doit être un multiple de quatre.

Valeur de retour

None

Remarques

Le pilote peut utiliser la fonction de rappel pfnSetErrorCb pour définir un code d’erreur.

La fonction DrawInstancedIndirect effectue la même tâche que l’appel à la fonction DrawInstanced du pilote. Toutefois, DrawInstancedIndirect obtient des informations sur les primitives non indexées à partir du contenu de la mémoire tampon spécifiée par le paramètre hBufferForArgs . DrawInstancedIndirect lit le contenu de la mémoire tampon, en commençant par le décalage d’octets spécifié par le paramètre AlignedByteOffsetForArgs .

Lorsque le runtime Direct3D appelle la fonction CreateResource(D3D11) du pilote pour créer la ressource de mémoire tampon spécifiée par le paramètre hBufferForArgs , le runtime doit définir l’indicateur D3D11_DDI_RESOURCE_MISC_DRAWINDIRECT_ARGS dans le membre MiscFlags de la structure D3D11DDIARG_CREATERESOURCE .

Le pilote ne doit rencontrer aucune erreur, à l’exception de D3DDDIERR_DEVICEREMOVED. Par conséquent, si le pilote réussit une erreur, à l’exception de D3DDDIERR_DEVICEREMOVED, dans un appel à la fonction pfnSetErrorCb , le runtime Direct3D détermine que l’erreur est critique. Même si l’appareil est supprimé, le pilote n’est pas tenu de retourner D3DDDIERR_DEVICEREMOVED ; Toutefois, si la suppression de l’appareil interfère avec le fonctionnement de DrawInstancedIndirect (ce qui ne doit généralement pas se produire), le pilote peut retourner D3DDDIERR_DEVICEREMOVED.

Configuration requise

Condition requise Valeur
Client minimal pris en charge DrawInstancedIndirect est pris en charge à partir du système d’exploitation Windows 7.
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3d10umddi.h (incluez D3d10umddi.h)

Voir aussi

CreateResource(D3D11)

D3D11DDIARG_CREATERESOURCE

D3D11DDI_DEVICEFUNCS

DrawInstanced

pfnSetErrorCb