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)。
下图显示了一部分示例命令缓冲区,其中包含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结构的逻辑列表](images/dp2tstrp.png)
要求
要求 | 价值 |
---|---|
标头 | d3dhal.h (包括 D3dhal.h) |
另请参阅
D3DDP2OP_INDEXEDTRIANGLESTRIP