D3DHAL_DP2INDEXEDTRIANGLESTRIP-Struktur (d3dhal.h)

Mindestens eine D3DHAL_DP2INDEXEDTRIANGLESTRIP Strukturen werden vom D3dDrawPrimitives2-Rückruf aus dem Befehlspuffer analysiert, wenn das bCommand-Element der D3DHAL_DP2COMMAND-Struktur auf D3DDP2OP_INDEXEDTRIANGLESTRIP festgelegt ist, und zum Rendern von Strips verbundener Dreiecke mithilfe von Vertexindizes verwendet werden.

Syntax

typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
  WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLESTRIP, *LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;

Member

wV[3]

Gibt den Index im Vertexpuffer an, der Koordinatendaten für den ersten Scheitelpunkt des Dreiecksstreifens enthält.

Obwohl dieses Element nur genügend Speicherplatz für drei Indizes hat, sollte dieses Array von Indizes als Array mit variabler Größe mit (wPrimitiveCount + 2) -Elementen behandelt werden. (wPrimitiveCount ist ein Element der D3DHAL_DP2COMMAND-Struktur.)

Hinweise

D3dDrawPrimitives2 sollte (wPrimitiveCount+2) Indizes aus dem Befehlspuffer verarbeiten, tatsächlich verarbeitet wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLESTRIP Strukturen.

Die Dreiecksränder in einem Dreiecksstreifen werden in der folgenden Reihenfolge gerendert: (wV[0], wV[1], wV[2]), (wV[1], wV[3], wV[2]), (wV[2], wV[3], wV[4]), (wV[3], wV[5], wV[4]),...

Für das letzte Dreieck im Dreiecksstreifen werden die Kanten jedoch in unterschiedlichen Reihenfolgen gerendert, wenn wPrimitiveCountt ungerade und gerade ist.

  • Wenn wPrimitiveCount eine ungerade Zahl ist, werden die Kanten des letzten Dreiecks in der folgenden Reihenfolge gerendert: (wV[wPrimitiveCount - 1], wV[wPrimitiveCount], wV[wPrimitiveCount+ 1]).
  • Wenn wPrimitiveCount eine gerade Zahl ist, werden die Kanten des letzten Dreiecks in der folgenden Reihenfolge gerendert: (wV[wPrimitiveCount- 1], wV[wPrimitiveCount+1], wV[wPrimitiveCount).
Eine D3DHAL_DP2STARTVERTEX-Struktur folgt sofort dem Befehl im Befehlspuffer. Die Vertexpufferindizes sind relativ zum Vertexpufferoffset, der vom dwVertexOffset-Element der D3DHAL_DRAWPRIMITIVES2DATA-Struktur und dem Basisoffset angegeben wird, der vom wVStart-Member der D3DHAL_DP2STARTVERTEX-Struktur abgerufen wird.

Die folgende Abbildung zeigt einen Teil eines Beispielbefehlspuffers, der einen D3DDP2OP_INDEXEDTRIANGLESTRIP-Befehl, einen D3DHAL_DP2STARTVERTEX Offset von null und eine logische Liste mit D3DHAL_DP2INDEXEDTRIANGLESTRIP Strukturen enthält. Der Treiber sollte fünf Scheitelpunkte aus dem Vertexpuffer verarbeiten und einen Streifen aus drei Dreiecken rendern, die durch (v[1], v[3], v[6]), (v[3], v[4], v[6]), (v[6], v[4], v[5]) definiert sind.

Abbildung eines Puffers mit einem D3DDP2OP_INDEXEDTRIANGLESTRIP-Befehl, einem D3DHAL_DP2STARTVERTEX Offset von 0 und einer logischen Liste D3DHAL_DP2INDEXEDTRIANGLESTRIP Strukturen

Anforderungen

Anforderung Wert
Header d3dhal.h (einschließlich D3dhal.h)

Weitere Informationen

D3DDP2OP_INDEXEDTRIANGLESTRIP

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2