IDirect3DDevice9::CreateIndexBuffer-Methode (d3d9.h)
Erstellt einen Indexpuffer.
HRESULT CreateIndexBuffer(
[in] UINT Length,
[in] DWORD Usage,
[in] D3DFORMAT Format,
[in] D3DPOOL Pool,
[out, retval] IDirect3DIndexBuffer9 **ppIndexBuffer,
[in] HANDLE *pSharedHandle
);
[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.
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.
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.
Zielplattform | Windows |
Kopfzeile | d3d9.h (einschließlich D3D9.h) |
Bibliothek | D3D9.lib |