Freigeben über


PFND3D11DDI_DRAWINSTANCEDINDIRECT Rückruffunktion (d3d10umddi.h)

Die DrawInstancedIndirect-Funktion zeichnet bestimmte Instanzen von nicht indizierten Grundtypen.

Syntax

PFND3D11DDI_DRAWINSTANCEDINDIRECT Pfnd3d11ddiDrawinstancedindirect;

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

Parameter

unnamedParam1

hDevice [in]

Ein Handle für das Anzeigegerät (Grafikkontext).

unnamedParam2

hBufferForArgs [in]

Ein Handle für einen Puffer, der die Argumente für die Verarbeitung von DrawInstancedIndirect enthält. Der Puffer enthält die folgende eng gepackte Struktur:

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

Weitere Informationen zu diesen Argumenten finden Sie auf der DrawInstanced-Referenzseite .

unnamedParam3

AlignedByteOffsetForArgs [in]

Der Offset in Bytes in den Puffer, den hBufferForArgs angibt. AlignedByteOffsetForArgs muss ein Vielfaches von vier sein.

Rückgabewert

Keine

Bemerkungen

Der Treiber kann die Rückruffunktion pfnSetErrorCb verwenden, um einen Fehlercode festzulegen.

Die DrawInstancedIndirect-Funktion führt dieselbe Aufgabe wie der Aufruf der DrawInstanced-Funktion des Treibers aus. DrawInstancedIndirect ruft jedoch Informationen zu den nicht indizierten Grundtypen aus dem Inhalt des Puffers ab, den der hBufferForArgs-Parameter angibt. DrawInstancedIndirect liest den Inhalt des Puffers ab dem Byteoffset, den der AlignedByteOffsetForArgs-Parameter angibt.

Wenn die Direct3D-Runtime die CreateResource(D3D11) -Funktion des Treibers aufruft, um die Pufferressource zu erstellen, die der hBufferForArgs-Parameter angibt, muss die Laufzeit das D3D11_DDI_RESOURCE_MISC_DRAWINDIRECT_ARGS-Flag im MiscFlags-Member der D3D11DDIARG_CREATERESOURCE-Struktur festlegen.

Für den Treiber sollte mit Ausnahme von D3DDDIERR_DEVICEREMOVED kein Fehler auftreten. Wenn der Treiber bei einem Aufruf der pfnSetErrorCb-Funktion einen Fehler mit Ausnahme von D3DDDIERR_DEVICEREMOVED übergibt, ermittelt die Direct3D-Runtime daher, dass der Fehler kritisch ist. Selbst wenn das Gerät entfernt wird, muss der Treiber nicht D3DDDIERR_DEVICEREMOVED zurückgeben. Wenn die Geräteentfernung jedoch den Vorgang von DrawInstancedIndirect beeinträchtigt (was normalerweise nicht geschehen sollte), kann der Treiber D3DDDIERR_DEVICEREMOVED zurückgeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) DrawInstancedIndirect wird ab dem Windows 7-Betriebssystem unterstützt.
Zielplattform Desktop
Kopfzeile d3d10umddi.h (include D3d10umddi.h)

Weitere Informationen

CreateResource(D3D11)

D3D11DDIARG_CREATERESOURCE

D3D11DDI_DEVICEFUNCS

DrawInstanced

pfnSetErrorCb