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]).
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]).Requisitos
Requisito | Valor |
---|---|
Cabeçalho | d3dhal.h (inclua D3dhal.h) |
Confira também
D3DDP2OP_INDEXEDTRIANGLELIST