PFND3D11DDI_DRAWINSTANCEDINDIRECT funzione di callback (d3d10umddi.h)

La funzione DrawInstancedIndirect disegna istanze particolari di primitive non indicizzate.

Sintassi

PFND3D11DDI_DRAWINSTANCEDINDIRECT Pfnd3d11ddiDrawinstancedindirect;

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

Parametri

unnamedParam1

hDevice [in]

Handle per il dispositivo di visualizzazione (contesto grafico).

unnamedParam2

hBufferForArgs [in]

Handle a un buffer che contiene gli argomenti per DrawInstancedIndirect da elaborare. Il buffer contiene la struttura strettamente confezionata seguente:

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

Per altre informazioni su questi argomenti, vedere la pagina di riferimento DrawInstanced .

unnamedParam3

AlignedByteOffsetForArgs [in]

Offset, in byte, nel buffer specificato da hBufferForArgs . AlignedByteOffsetForArgs deve essere un multiplo di quattro.

Valore restituito

nessuno

Osservazioni

Il driver può usare la funzione di callback pfnSetErrorCb per impostare un codice di errore.

La funzione DrawInstancedIndirect esegue la stessa attività della chiamata alla funzione DrawInstanced del driver. Tuttavia, DrawInstancedIndirect ottiene informazioni sulle primitive non indicizzate dal contenuto del buffer specificato dal parametro hBufferForArgs. DrawInstancedIndirect legge il contenuto del buffer, a partire dall'offset di byte specificato dal parametro AlignedByteOffsetForArgs .

Quando il runtime Direct3D chiama la funzione CreateResource(D3D11) del driver per creare la risorsa buffer specificata dal parametro hBufferForArgs , il runtime deve impostare il flag di D3D11_DDI_RESOURCE_MISC_DRAWINDIRECT_ARGS nel membro MiscFlagsdella struttura D3D11DDIARG_CREATERESOURCE.

Il driver non deve riscontrare alcun errore, ad eccezione di D3DDDIERR_DEVICEREMOVED. Pertanto, se il driver passa qualsiasi errore, ad eccezione di D3DDDIERR_DEVICEREMOVED, in una chiamata alla funzione pfnSetErrorCb , il runtime Direct3D determina che l'errore è critico. Anche se il dispositivo viene rimosso, il driver non è necessario restituire D3DDDIERR_DEVICEREMOVED; tuttavia, se la rimozione del dispositivo interferisce con l'operazione di DrawInstancedIndirect (che in genere non dovrebbe verificarsi), il driver può restituire D3DDDIERR_DEVICEREMOVED.

Requisiti

Requisito Valore
Client minimo supportato DrawInstancedIndirect è supportato a partire dal sistema operativo Windows 7.
Piattaforma di destinazione Desktop
Intestazione d3d10umddi.h (include D3d10umddi.h)

Vedi anche

CreateResource(D3D11)

D3D11DDIARG_CREATERESOURCE

D3D11DDI_DEVICEFUNCS

DrawInstanced

pfnSetErrorCb