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).
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.
Anforderungen
Anforderung | Wert |
---|---|
Header | d3dhal.h (einschließlich D3dhal.h) |
Weitere Informationen
D3DDP2OP_INDEXEDTRIANGLESTRIP