Indexpuffer

DirectX 8.0 führt das Konzept der Indexpuffer ein. Diese Puffer sind Vertexpuffern sehr ähnlich, speichern aber einfache 16- oder 32-Bit-Indizes in Vertexdaten anstelle der Vertexdaten selbst. Indexpuffer erweitern alle Vorteile von Vertexpuffern, z. B. optimales Herunterladen und Zwischenspeichern, um Daten zu indizieren.

Indexpuffer werden mit denselben Treibereinstiegspunkten wie für Vertexpuffer erstellt, gesperrt, entsperrt und zerstört. Ein Treiber kann zwischen diesen Puffertypen mithilfe des neuen Surface-Funktionsbits DDSCAPS2_INDEXBUFFER unterscheiden. Für Indexpuffer wird dieses Flag im Feld ddsCapsEx.dwCaps2 der DD_SURFACE_MORE-Struktur der Oberfläche festgelegt. Dies ist für Vertexpuffer eindeutig.

Im Gegensatz zu vielen anderen Oberflächentypen muss ein Treiber die Funktion DDSCAPS2_INDEXBUFFER nicht festlegen, wenn er seine Funktionen an die Laufzeit meldet, um Treiberaufrufe zum Erstellen, Zerstören und Sperren von Indexpuffern zu empfangen. Es wird davon ausgegangen, dass ein DirectX 8.0-Treiber, der Vertexpuffer unterstützt, auch Indexpuffer unterstützt. Wenn die zugrunde liegende Hardware keine direkte Unterstützung für Indexpuffer hat, sollte der Treiber die Erstellung des Indexpuffers verarbeiten, indem der Systemspeicher für die Oberfläche zugewiesen wird.