Compartilhar via


estrutura D3DHAL_DP2INDEXEDTRIANGLESTRIP (d3dhal.h)

Uma ou mais estruturas D3DHAL_DP2INDEXEDTRIANGLESTRIP são analisadas do buffer de comando pelo retorno de chamada D3dDrawPrimitives2 quando o membro bCommand da estrutura D3DHAL_DP2COMMAND é definido como D3DDP2OP_INDEXEDTRIANGLESTRIP e são usados para renderizar faixas de triângulos conectados usando índices de vértice.

Sintaxe

typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
  WORD wV[3];
} D3DHAL_DP2INDEXEDTRIANGLESTRIP, *LPD3DHAL_DP2INDEXEDTRIANGLESTRIP;

Membros

wV[3]

Especifica o índice no buffer de vértice que contém dados de coordenadas para o primeiro vértice da faixa de triângulos.

Embora esse membro tenha apenas espaço suficiente para conter três índices, essa matriz de índices deve ser tratada como uma matriz de tamanho variável com elementos (wPrimitiveCount + 2). (wPrimitiveCount é um membro da estrutura D3DHAL_DP2COMMAND.)

Comentários

D3dDrawPrimitives2 deve processar índices (wPrimitiveCount+2) do buffer de comando, na verdade, processando estruturas wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLESTRIP.

As bordas do triângulo em uma faixa de triângulo são renderizadas nesta ordem: (wV[0], wV[1], wV[2]), (wV[1], wV[3], wV[2]), (wV[2], wV[3], wV[4]), (wV[3], wV[5], wV[4]),...

No entanto, para o último triângulo na faixa de triângulo, as bordas são renderizadas em ordens diferentes quando wPrimitiveCountt é ímpar e quando é uniforme.

  • Quando wPrimitiveCount é um número ímpar, as bordas do último triângulo são renderizadas nesta ordem: (wV[wPrimitiveCount - 1], wV[wPrimitiveCount], wV[wPrimitiveCount+ 1]).
  • Quando wPrimitiveCount é um número par, as bordas do último triângulo são renderizadas nesta ordem: (wV[wPrimitiveCount- 1], wV[wPrimitiveCount+1], wV[wPrimitiveCount).
Uma estrutura de D3DHAL_DP2STARTVERTEX segue imediatamente o comando no buffer de comando. Os índices de buffer de vértice são relativos ao deslocamento de buffer de vértice especificado pelo membro dwVertexOffset da estrutura D3DHAL_DRAWPRIMITIVES2DATA 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 contendo um comando D3DDP2OP_INDEXEDTRIANGLESTRIP, um deslocamento D3DHAL_DP2STARTVERTEX de zero e uma lista lógica de estruturas de D3DHAL_DP2INDEXEDTRIANGLESTRIP. O driver deve processar cinco vértices do buffer de vértice, renderizando uma faixa de três triângulos definida por (v[1], v[3], v[6]), (v[3], v[4], v[6]), (v[6], v[4], v[5]).

Figura mostrando um buffer com um comando D3DDP2OP_INDEXEDTRIANGLESTRIP, um deslocamento D3DHAL_DP2STARTVERTEX de zero e uma lista lógica de estruturas de D3DHAL_DP2INDEXEDTRIANGLESTRIP

Requisitos

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

Confira também

D3DDP2OP_INDEXEDTRIANGLESTRIP

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2