IDirect3DDevice9::CreateIndexBuffer-Methode (d3d9.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

Mitglied 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 zum Freigeben von Ressourcen verwendet werden. Legen Sie sie auf NULL fest, um eine Ressource nicht 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 einer der folgenden sein: D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Hinweise

Indexpuffer sind Speicherressourcen, die zum Speichern von Indizes verwendet werden, und ähneln sowohl Oberflächen als auch Vertexpuffern. Durch die Verwendung von Indexpuffern kann Direct3D unnötiges Kopieren von Daten vermeiden und den Puffer im optimalen Speichertyp für die erwartete Nutzung 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.

Das MaxVertexIndex-Element der D3DCAPS9-Struktur gibt die Typen von Indexpuffern an, die für das Rendering gültig sind.

Anforderungen

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

Weitere Informationen

IDirect3DDevice9

IDirect3DIndexBuffer9::GetDesc

Indexpuffer (Direct3D 9)