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) |