estrutura D3DHAL_DP2INDEXEDTRIANGLELIST (d3dhal.h)

Uma ou mais estruturas de D3DHAL_DP2INDEXEDTRIANGLELIST são analisadas do buffer de comando pelo retorno de chamada D3dDrawPrimitives2 quando o membro bCommand da estrutura D3DHAL_DP2COMMAND é definido como D3DDP2OP_INDEXEDTRIANGLELIST e são usados para renderizar uma sequência de triângulos não conectados usando índices de vértice.

Sintaxe

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

Membros

wV1

Especifica o índice no local do buffer de vértice que contém dados de coordenadas para o primeiro vértice do triângulo.

wV2

Especifica o índice para o local do buffer de vértice que contém dados de coordenadas para o segundo vértice do triângulo.

wV3

Especifica o índice para o local do buffer de vértice que contém dados de coordenadas para o terceiro vértice do triângulo.

wFlags

Especifica os sinalizadores que descrevem como o driver deve renderizar o triângulo. Esse membro pode ser um OR bit a bit dos seguintes valores:

Sinalizador Significado
D3DTRIFLAG_EDGEENABLE1 O driver deve renderizar a borda do triângulo entre wV1 e wV2 quando o modo de preenchimento é D3DFILL_WIREFRAME.
D3DTRIFLAG_EDGEENABLE2 O driver deve renderizar a borda do triângulo entre wV2 e wV3 quando o modo de preenchimento é D3DFILL_WIREFRAME.
D3DTRIFLAG_EDGEENABLE3 O driver deve renderizar a borda do triângulo entre wV3 e wV1 quando o modo de preenchimento é D3DFILL_WIREFRAME.
D3DTRIFLAG_EDGEENABLETRIANGLE O driver deve renderizar todas as bordas do triângulo quando o modo de preenchimento for D3DFILL_WIREFRAME.

Comentários

D3dDrawPrimitives2 deve processar índices wPrimitiveCount * 3 do buffer de comando, processando estruturas de D3DHAL_DP2INDEXEDTRIANGLELIST wPrimitiveCount . O valor de wPrimitiveCount é especificado na estrutura D3DHAL_DP2COMMAND.

O driver deve processar um total de vértices wPrimitiveCount*3 do buffer de vértice, três vértices por triângulo, para o comando atual. A sequência de triângulos renderizados é (wV1₀, wV2₀, wV3₀), (wV1₁, wV2₁, wV3₁), ..., (wV1n, wV2n, wV3n), em que n é igual a (wPrimitiveCount- 1). O driver deve calcular os locais de vértice com base no comando atual da seguinte maneira:

  • Quando o comando é D3DDP2OP_INDEXEDTRIANGLELIST, os índices no buffer de vértice são relativos ao deslocamento de buffer de vértice especificado pelo membro dwVertexOffset da estrutura D3DHAL_DRAWPRIMITIVES2DATA .

  • Quando o comando é D3DDP2OP_INDEXEDTRIANGLELIST2, há uma estrutura D3DHAL_DP2STARTVERTEX que segue imediatamente o comando no buffer de comandos. Os índices no buffer de vértice são relativos ao deslocamento de buffer de vértice especificado por dwVertexOffset mais o deslocamento base obtido do membro wVStart da estrutura D3DHAL_DP2STARTVERTEX.

A figura a seguir mostra uma parte de um buffer de comando de exemplo que contém um comando D3DDP2OP_INDEXEDTRIANGLELIST e duas estruturas D3DHAL_DP2INDEXEDTRIANGLELIST. O driver deve desenhar dois triângulos âˆ' com todas as bordas habilitadas âˆ' usando os seis vértices a seguir do buffer de vértice: (v[3], v[4], v[5]), (v[0], v[1], v[2]).

Figura mostrando um buffer de comando com um comando D3DDP2OP_INDEXEDTRIANGLELIST e duas estruturas D3DHAL_DP2INDEXEDTRIANGLELIST Da mesma forma, a figura a seguir mostra uma parte de um buffer de comando de exemplo que contém um comando D3DDP2OP_INDEXEDTRIANGLELIST2, um deslocamento de D3DHAL_DP2STARTVERTEX e duas estruturas D3DHAL_DP2INDEXEDTRIANGLELIST. O driver deve processar seis vértices do buffer de vértice, renderizando dois triângulos definidos por (v[5], v[6], v[7]), (v[2], v[3], v[4]). Figura mostrando um buffer com um comando D3DDP2OP_INDEXEDTRIANGLELIST2, um deslocamento D3DHAL_DP2STARTVERTEX e duas estruturas D3DHAL_DP2INDEXEDTRIANGLELIST

Requisitos

Requisito Valor
Cabeçalho d3dhal.h (inclua D3dhal.h)

Confira também

D3DDP2OP_INDEXEDTRIANGLELIST

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2