Freigeben über


D3DHAL_DP2INDEXEDTRIANGLELIST-Struktur (d3dhal.h)

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

Syntax

typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
  WORD wV1;
  WORD wV2;
  WORD wV3;
  WORD wFlags;
} D3DHAL_DP2INDEXEDTRIANGLELIST, *LPD3DHAL_DP2INDEXEDTRIANGLELIST;

Member

wV1

Gibt den Index in der Vertexpufferposition an, die Koordinatendaten für den ersten Scheitelpunkt des Dreiecks enthält.

wV2

Gibt den Index zum Vertexpufferspeicherort an, der Koordinatendaten für den zweiten Scheitelpunkt des Dreiecks enthält.

wV3

Gibt den Index zum Vertexpufferspeicherort an, der Koordinatendaten für den dritten Scheitelpunkt des Dreiecks enthält.

wFlags

Gibt die Flags an, die beschreiben, wie der Treiber das Dreieck rendern soll. Dieser Member kann ein bitweiser OR der folgenden Werte sein:

Kennzeichnen 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.

Hinweise

D3dDrawPrimitives2 sollte wPrimitiveCount * 3 Indizes aus dem Befehlspuffer verarbeiten und wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLELIST Strukturen verarbeiten. Der Wert von wPrimitiveCount wird in der D3DHAL_DP2COMMAND-Struktur angegeben.

Der Treiber sollte insgesamt wPrimitiveCount*3 Scheitelpunkte aus dem Scheitelpunktpuffer verarbeiten, drei Scheitelpunkte pro Dreieck, für den aktuellen Befehl. Die Sequenz der gerenderten Dreiecke ist (wV1₀, wV2₀, wV3₀), (wV1₁, wV2₁, wV3₁), ..., (wV1n, wV2n, wV3n), wobei n gleich (wPrimitiveCount- 1) ist. Der Treiber sollte die Scheitelpunkte basierend auf dem aktuellen Befehl wie folgt berechnen:

  • Wenn der Befehl D3DDP2OP_INDEXEDTRIANGLELIST ist, sind die Indizes im Vertexpuffer relativ zum Vertexpufferoffset, der vom dwVertexOffset-Element der D3DHAL_DRAWPRIMITIVES2DATA-Struktur angegeben wird.

  • Wenn der Befehl D3DDP2OP_INDEXEDTRIANGLELIST2 ist, gibt es eine D3DHAL_DP2STARTVERTEX-Struktur , die dem Befehl im Befehlspuffer unmittelbar folgt. Die Indizes im Vertexpuffer sind relativ zum Vertexpufferoffset, der durch dwVertexOffset angegeben wird, und dem Basisoffset, der vom wVStart-Element der D3DHAL_DP2STARTVERTEX-Struktur abgerufen wird.

Die folgende Abbildung zeigt einen Teil eines Beispielbefehlspuffers, der einen D3DDP2OP_INDEXEDTRIANGLELIST-Befehl und zwei D3DHAL_DP2INDEXEDTRIANGLELIST-Strukturen enthält. Der Treiber sollte zwei Dreiecke âˆ' mit aktivierten Kanten âˆ' mit den folgenden sechs Scheitelpunkten aus dem Vertexpuffer zeichnen: (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 In ähnlicher Weise zeigt die folgende Abbildung einen Teil eines Beispielbefehlspuffers, der einen D3DDP2OP_INDEXEDTRIANGLELIST2-Befehl, einen D3DHAL_DP2STARTVERTEX Offset und zwei D3DHAL_DP2INDEXEDTRIANGLELIST-Strukturen enthält. Der Treiber sollte sechs Scheitelpunkte aus dem Vertexpuffer verarbeiten und dabei zwei Dreiecke rendern, 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)

Weitere Informationen

D3DDP2OP_INDEXEDTRIANGLELIST

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2