D3DHAL_DP2INDEXEDTRIANGLESTRIP结构 (d3dhal.h)

D3DHAL_DP2COMMAND 结构的 bCommand 成员设置为D3DDP2OP_INDEXEDTRIANGLESTRIP时,D3dDrawPrimitives2 回调从命令缓冲区分析一个或多个D3DHAL_DP2INDEXEDTRIANGLESTRIP结构,并用于使用顶点索引呈现连接的三角形的条带。

语法

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

成员

wV[3]

将索引指定到顶点缓冲区中,该缓冲区包含三角形带的第一个顶点的坐标数据。

尽管此成员只有足够空间来包含三个索引,但此索引数组应被视为具有可变大小的数组(wPrimitiveCount + 2) 元素。 (wPrimitiveCount 是D3DHAL_DP2COMMAND结构的成员。

言论

D3dDrawPrimitives2 应处理命令缓冲区中的索引(wPrimitiveCount+2)索引,实际上处理 wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLESTRIP 结构。

三角形条中的三角形边缘按以下顺序呈现:(wV[0]wV[1]wV[2]),(wV[1]]wV[3]wV[2]), (wV[2]wV[3]wV[4]), (wV[3]wV[5]wV[4]],...

但是,对于三角形条中的最后一个三角形,当 wPrimitiveCountt 为奇数且偶数时,边缘以不同的顺序呈现。

  • wPrimitiveCount 为奇数时,将按以下顺序呈现最后一个三角形的边缘:(wV[wPrimitiveCount - 1]wV[wPrimitiveCount]wV[wPrimitiveCount+ 1])。
  • wPrimitiveCount 为偶数时,将按以下顺序呈现最后一个三角形的边缘:(wV[wPrimitiveCount- 1]wV[wPrimitiveCount+1]wV[wPrimitiveCount)。
D3DHAL_DP2STARTVERTEX 结构紧跟命令缓冲区中的命令。 顶点缓冲区索引相对于由 D3DHAL_DRAWPRIMITIVES2DATA 结构的 dwVertexOffset 成员指定的顶点缓冲区偏移量,以及从 D3DHAL_DP2STARTVERTEX 结构的 wVStart 成员获取的基本偏移量。

下图显示了一部分示例命令缓冲区,其中包含D3DDP2OP_INDEXEDTRIANGLESTRIP命令、零的D3DHAL_DP2STARTVERTEX偏移量和D3DHAL_DP2INDEXEDTRIANGLESTRIP结构的逻辑列表。 驱动程序应处理顶点缓冲区中的五个顶点,呈现由 (v[1], v[3], v[6], v[3], v[4], v[6]), (v[6], v[4], v[4], v[5]) 定义的三角形的条带。

图显示了具有D3DDP2OP_INDEXEDTRIANGLESTRIP命令的缓冲区、零的D3DHAL_DP2STARTVERTEX偏移量和D3DHAL_DP2INDEXEDTRIANGLESTRIP结构的逻辑列表

要求

要求 价值
标头 d3dhal.h (包括 D3dhal.h)

另请参阅

D3DDP2OP_INDEXEDTRIANGLESTRIP

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2