D3DHAL_DP2INDEXEDTRIANGLELIST Struktur (d3dhal.h)
Mindestens eine D3DHAL_DP2INDEXEDTRIANGLELIST Strukturen werden vom Befehlspuffer durch den D3dDrawPrimitives2 Rückruf analysiert, wenn das bCommand Member der D3DHAL_DP2COMMAND Struktur auf D3DDP2OP_INDEXEDTRIANGLELIST festgelegt ist und zum Rendern einer Sequenz nicht verbundener Dreiecke mithilfe von Vertexindizes verwendet wird.
Syntax
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
WORD wV1;
WORD wV2;
WORD wV3;
WORD wFlags;
} D3DHAL_DP2INDEXEDTRIANGLELIST, *LPD3DHAL_DP2INDEXEDTRIANGLELIST;
Angehörige
wV1
Gibt den Index an der Vertexpufferposition an, die Koordinatendaten für den ersten Scheitelpunkt des Dreiecks enthält.
wV2
Gibt den Index an die Vertexpufferposition an, die Koordinatendaten für den zweiten Scheitelpunkt des Dreiecks enthält.
wV3
Gibt den Index an die Vertexpufferposition an, die Koordinatendaten für den dritten Scheitelpunkt des Dreiecks enthält.
wFlags
Gibt die Flags an, die beschreiben, wie der Treiber das Dreieck rendern soll. Dieses Element kann ein bitweiser OR der folgenden Werte sein:
Kennzeichnung | Bedeutung |
---|---|
D3DTRIFLAG_EDGEENABLE1 | Der Treiber sollte den Dreiecksrand zwischen wV1- und wV2- rendern, wenn der Füllmodus D3DFILL_WIREFRAME ist. |
D3DTRIFLAG_EDGEENABLE2 | Der Treiber sollte den Dreiecksrand zwischen wV2- und wV3- rendern, wenn der Füllmodus D3DFILL_WIREFRAME ist. |
D3DTRIFLAG_EDGEENABLE3 | Der Treiber sollte den Dreiecksrand zwischen wV3- und wV1- rendern, wenn der Füllmodus D3DFILL_WIREFRAME ist. |
D3DTRIFLAG_EDGEENABLETRIANGLE | Der Treiber sollte alle Dreiecksränder rendern, wenn der Füllmodus D3DFILL_WIREFRAME ist. |
Bemerkungen
D3dDrawPrimitives2 sollte wPrimitiveCount * 3 Indizes aus dem Befehlspuffer verarbeiten, wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLELIST Strukturen verarbeiten. Der Wert wPrimitiveCount wird in der D3DHAL_DP2COMMAND-Struktur angegeben.
Der Treiber sollte insgesamt wPrimitiveCount*3 Scheitelpunkte aus dem Vertexpuffer, drei Scheitelpunkte pro Dreieck für den aktuellen Befehl verarbeiten. Die Sequenz der gerenderten Dreiecke ist (wV1₀, wV2₀, wV3₀), (wV1₁, wV2₁, wV3₁), ..., (wV1n, wV2n, wV3n), wobei n gleich (wPrimitiveCount- 1). Der Treiber sollte die Vertexpositionen basierend auf dem aktuellen Befehl wie folgt berechnen:
Wenn der Befehl D3DDP2OP_INDEXEDTRIANGLELIST ist, sind die Indizes im Vertexpuffer relativ zum Vertexpufferversatz, der durch das dwVertexOffset-Element der D3DHAL_DRAWPRIMITIVES2DATA-Struktur angegeben wird.
Wenn der Befehl D3DDP2OP_INDEXEDTRIANGLELIST2 ist, gibt es eine D3DHAL_DP2STARTVERTEX Struktur, die unmittelbar auf den Befehl im Befehlspuffer folgt. Die Indizes im Vertexpuffer sind relativ zum durch dwVertexOffset angegebenen Vertexpuffer-Offset sowie dem Vom wVStart-Element der D3DHAL_DP2STARTVERTEX Struktur abgerufenen Basisoffset.
Die folgende Abbildung zeigt einen Teil eines Beispielbefehlspuffers mit einem D3DDP2OP_INDEXEDTRIANGLELIST Befehl und zwei D3DHAL_DP2INDEXEDTRIANGLELIST Strukturen. Der Treiber sollte zwei Dreiecke âˆ' mit allen Rändern zeichnen, die âˆ' mit den folgenden sechs Scheitelpunkten aus dem Vertexpuffer verwendet werden: (v[3], v[4], v[5]), (v[0], v[1], v[2]).
![Abbildung eines Befehlspuffers mit einem D3DDP2OP_INDEXEDTRIANGLELIST Befehl und zwei D3DHAL_DP2INDEXEDTRIANGLELIST Strukturen](images/dp2tlsi.png)
![Abbildung eines Puffers mit einem D3DDP2OP_INDEXEDTRIANGLELIST2-Befehl, einem D3DHAL_DP2STARTVERTEX Offset und zwei D3DHAL_DP2INDEXEDTRIANGLELIST Strukturen](images/dp2tls2i.png)
Anforderungen
Anforderung | Wert |
---|---|
Header- | d3dhal.h (einschließlich D3dhal.h) |
Siehe auch
D3DDP2OP_INDEXEDTRIANGLELIST