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 structure.)
注解
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[5]) 定义的三个三角形条带。
要求
要求 | 值 |
---|---|
Header | d3dhal.h (包括 D3dhal.h) |
另请参阅
D3DDP2OP_INDEXEDTRIANGLESTRIP