Freigeben über


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 ähnlich zeigt die folgende Abbildung einen Teil eines Beispielbefehlspuffers mit einem D3DDP2OP_INDEXEDTRIANGLELIST2 Befehl, einem D3DHAL_DP2STARTVERTEX Offset und zwei D3DHAL_DP2INDEXEDTRIANGLELIST Strukturen. Der Treiber sollte sechs Scheitelpunkte aus dem Vertexpuffer verarbeiten, wobei zwei Dreiecke gerendert werden, die durch (v[5], v[6], v[7]), (v[2], v[3], v[4]) definiert sind. Abbildung eines Puffers mit einem D3DDP2OP_INDEXEDTRIANGLELIST2-Befehl, einem D3DHAL_DP2STARTVERTEX Offset und zwei D3DHAL_DP2INDEXEDTRIANGLELIST Strukturen

Anforderungen

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

Siehe auch

D3DDP2OP_INDEXEDTRIANGLELIST

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2