IDirect3DDevice9::CreateIndexBuffer-Methode (d3d9helper.h)

Erstellt einen Indexpuffer.

Syntax

HRESULT CreateIndexBuffer(
  [in]          UINT                  Length,
  [in]          DWORD                 Usage,
  [in]          D3DFORMAT             Format,
  [in]          D3DPOOL               Pool,
  [out, retval] IDirect3DIndexBuffer9 **ppIndexBuffer,
  [in]          HANDLE                *pSharedHandle
);

Parameter

[in] Length

Typ: UINT

Größe des Indexpuffers in Bytes.

[in] Usage

Typ: DWORD

Die Verwendung kann 0 sein, was keinen Nutzungswert angibt. Wenn die Verwendung jedoch gewünscht ist, verwenden Sie eine Kombination aus einer oder mehreren D3DUSAGE-Konstanten . Es empfiehlt sich, den Verwendungsparameter in CreateIndexBuffer mit den Verhaltensflags in IDirect3D9::CreateDevice abzugleichen. Weitere Informationen finden Sie in den Hinweisen.

[in] Format

Typ: D3DFORMAT

Member des aufgezählten D3DFORMAT-Typs , der das Format des Indexpuffers beschreibt. Weitere Informationen finden Sie in den Hinweisen. Die gültigen Einstellungen sind die folgenden:

Element BESCHREIBUNG
D3DFMT_INDEX16 Indizes sind jeweils 16 Bits.
D3DFMT_INDEX32 Indizes sind jeweils 32 Bits.

[in] Pool

Typ: D3DPOOL

Member des aufgezählten D3DPOOL-Typs , der eine gültige Speicherklasse beschreibt, in der die Ressource platziert werden soll.

[out, retval] ppIndexBuffer

Typ: IDirect3DIndexBuffer9**

Adresse eines Zeigers auf eine IDirect3DIndexBuffer9-Schnittstelle , die die erstellte Indexpufferressource darstellt.

[in] pSharedHandle

Typ: HANDLE*

Dieser Parameter kann in Direct3D 9 für Windows Vista verwendet werden, um Ressourcen freizugeben. Legen Sie sie auf NULL fest, um keine Ressource gemeinsam zu nutzen. Dieser Parameter wird in Direct3D 9 nicht für Betriebssysteme vor Windows Vista verwendet. legen Sie sie auf NULL fest.

Rückgabewert

Typ: HRESULT

Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Methode fehlschlägt, kann der Rückgabewert wie folgt aussehen: D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Hinweise

Indexpuffer sind Speicherressourcen, die zum Speichern von Indizes verwendet werden. Sie ähneln sowohl Oberflächen als auch Vertexpuffern. Die Verwendung von Indexpuffern ermöglicht Direct3D, unnötiges Kopieren von Daten zu vermeiden und den Puffer für die erwartete Nutzung im optimalen Speichertyp zu platzieren.

Um Indexpuffer zu verwenden, erstellen Sie einen Indexpuffer, sperren Sie ihn, füllen Sie ihn mit Indizes, entsperren Sie ihn, übergeben Sie ihn an IDirect3DDevice9::SetIndices, richten Sie die Scheitelpunkte ein, richten Sie den Vertex-Shader ein, und rufen Sie IDirect3DDevice9::D rawIndexedPrimitive zum Rendern auf.

Der MaxVertexIndex-Member der D3DCAPS9-Struktur gibt die Typen von Indexpuffern an, die für das Rendern gültig sind.

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d9helper.h (include D3D9.h)
Bibliothek D3D9.lib

Weitere Informationen

IDirect3DDevice9

IDirect3DIndexBuffer9::GetDesc

Indexpuffer (Direct3D 9)