Freigeben über


IDirect3DDevice9::P rocessVertices-Methode (d3d9.h)

Wendet die durch den Vertexshader definierte Vertexverarbeitung auf den Satz von Eingabedatenströmen an, wodurch ein einzelner Datenstrom von verschachtelten Vertexdaten auf den Zielvertexpuffer generiert wird.

Syntax

HRESULT ProcessVertices(
  [in] UINT                        SrcStartIndex,
  [in] UINT                        DestIndex,
  [in] UINT                        VertexCount,
  [in] IDirect3DVertexBuffer9      *pDestBuffer,
  [in] IDirect3DVertexDeclaration9 *pVertexDecl,
  [in] DWORD                       Flags
);

Parameter

[in] SrcStartIndex

Typ: UINT

Index des ersten zu ladenden Scheitelpunkts.

[in] DestIndex

Typ: UINT

Index des ersten Scheitelpunkts im Zielvertexpuffer, in dem die Ergebnisse platziert werden.

[in] VertexCount

Typ: UINT

Anzahl der zu verarbeitenden Scheitelpunkte.

[in] pDestBuffer

Typ: IDirect3DVertexBuffer9*

Zeiger auf eine IDirect3DVertexBuffer9-Schnittstelle , den Zielvertexpuffer, der den Datenstrom der verschachtelten Vertexdaten darstellt.

[in] pVertexDecl

Typ: IDirect3DVertexDeclaration9*

Zeiger auf eine IDirect3DVertexDeclaration9-Schnittstelle , die die Ausgabevertexdatendeklaration darstellt. Wenn vertex shader 3.0 oder höher als aktueller Vertexshader festgelegt ist, muss die Ausgabevertexdeklaration vorhanden sein.

[in] Flags

Typ: DWORD

Verarbeitungsoptionen. Legen Sie diesen Parameter für die Standardverarbeitung auf 0 fest. Legen Sie diese Einstellung auf D3DPV_DONOTCOPYDATA fest, um zu verhindern, dass das System Vertexdaten, die nicht vom Vertexvorgang betroffen sind, in den Zielpuffer kopiert. Der D3DPV_DONOTCOPYDATA Wert kann mit einem oder mehreren D3DLOCK-Werten kombiniert werden, die für den Zielpuffer geeignet sind.

Rückgabewert

Typ: HRESULT

Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Methode fehlschlägt, kann der Rückgabewert D3DERR_INVALIDCALL werden.

Hinweise

Die Reihenfolge der Vorgänge für diese Methode lautet wie folgt:

  • Transformieren Sie Scheitelpunkte in einen Projektionsraum, indem Sie die Welt + Ansicht + Projektionsmatrix verwenden.
  • Berechnen von Bildschirmkoordinaten mithilfe von Viewporteinstellungen.
  • Wenn clipping aktiviert ist, berechnen Sie Beschneidungscodes, und speichern Sie sie in einem internen Puffer, der dem Zielvertexpuffer zugeordnet ist. Wenn sich ein Scheitelpunkt innerhalb des Anzeige-Frustums befindet, werden seine Bildschirmkoordinaten berechnet. Wenn sich der Scheitelpunkt außerhalb des Anzeige frustums befindet, wird der Scheitelpunkt im Zielvertexpuffer in Projektionsraumkoordinaten gespeichert.
  • Weitere Hinweise: Der Benutzer hat keinen Zugriff auf den internen Clipcodepuffer. An Dreiecken oder anderen Grundtypen wird kein Clipping durchgeführt.
Der Zielvertexpuffer pDestBuffer muss mit einem FVF-Parameter ungleich null in IDirect3DDevice9::CreateVertexBuffer erstellt werden. Der während des Aufrufs der IDirect3DDevice9::CreateVertexBuffer-Methode angegebene FVF-Code gibt die Vertexelemente an, die im Zielvertexpuffer vorhanden sind.

Wenn Direct3D Texturkoordinaten generiert oder Eingabetexturkoordinaten kopiert oder transformiert und das Ausgabetexturkoordinatenformat mehr Texturkoordinatenkomponenten definiert als Direct3D generiert, ändert Direct3D diese zusätzlichen Komponenten nicht.

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d9.h (einschließlich D3D9.h)
Bibliothek D3D9.lib

Weitere Informationen

Gerätetypen und Vertexverarbeitungsanforderungen (Direct3D 9)

Vertexverarbeitung fester Funktionen (Direct3D 9)

IDirect3DDevice9