D3DHAL_DP2INDEXEDTRIANGLELIST结构(d3dhal.h)
当 D3DHAL_DP2COMMAND 结构的 bCommand 成员设置为D3DDP2OP_INDEXEDTRIANGLELIST时,D3dDrawPrimitives2 回调从命令缓冲区分析一个或多个D3DHAL_DP2INDEXEDTRIANGLELIST结构,并用于使用顶点索引呈现一系列未连接的三角形。
语法
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
WORD wV1;
WORD wV2;
WORD wV3;
WORD wFlags;
} D3DHAL_DP2INDEXEDTRIANGLELIST, *LPD3DHAL_DP2INDEXEDTRIANGLELIST;
成员
wV1
将索引指定到顶点缓冲区位置,其中包含三角形的第一个顶点的坐标数据。
wV2
指定顶点缓冲区位置的索引,该位置包含三角形的第二个顶点的坐标数据。
wV3
指定顶点缓冲区位置的索引,该位置包含三角形第三个顶点的坐标数据。
wFlags
指定描述驱动程序应如何呈现三角形的标志。 此成员可以是以下值的按位 OR:
标志 | 含义 |
---|---|
D3DTRIFLAG_EDGEENABLE1 | 当填充模式D3DFILL_WIREFRAME时,驱动程序应在 wV1 和 wV2 之间呈现三角形边缘。 |
D3DTRIFLAG_EDGEENABLE2 | 当填充模式D3DFILL_WIREFRAME时,驱动程序应在 wV2 和 wV3 之间呈现三角形边缘。 |
D3DTRIFLAG_EDGEENABLE3 | 当填充模式D3DFILL_WIREFRAME时,驱动程序应在 wV3 和 wV1 之间呈现三角形边缘。 |
D3DTRIFLAG_EDGEENABLETRIANGLE | 当填充模式D3DFILL_WIREFRAME时,驱动程序应呈现所有三角形边缘。 |
言论
D3dDrawPrimitives2 应从命令缓冲区处理 wPrimitiveCount * 3 个索引,处理 wPrimitiveCount D3DHAL_DP2INDEXEDTRIANGLELIST 结构。 wPrimitiveCount 的值在D3DHAL_DP2COMMAND结构中指定。
对于当前命令,驱动程序应总共处理来自顶点缓冲区的 wPrimitiveCount*3 顶点,每个三角形有三个顶点。 呈现的三角形序列为 (wV1₀, wV2₀, wV3₀), (wV1₁, wV2₁, wV3₁), ..., (wV1n, wV2n, wV3n), 其中 n 等于 (wPrimitiveCount- 1)。 驱动程序应根据当前命令计算顶点位置,如下所示:
当命令D3DDP2OP_INDEXEDTRIANGLELIST时,顶点缓冲区中的索引相对于 D3DHAL_DRAWPRIMITIVES2DATA 结构的 dwVertexOffset 成员指定的顶点缓冲区偏移量。
当命令D3DDP2OP_INDEXEDTRIANGLELIST2时,命令缓冲区中会立即有一个 D3DHAL_DP2STARTVERTEX 结构。 顶点缓冲区中的索引相对于 dwVertexOffset 指定的顶点缓冲区偏移量以及从D3DHAL_DP2STARTVERTEX结构的 wVStart 成员获取的基本偏移量。
下图显示了包含D3DDP2OP_INDEXEDTRIANGLELIST命令和两个D3DHAL_DP2INDEXEDTRIANGLELIST结构的示例命令缓冲区的一部分。 驱动程序应从顶点缓冲区使用以下六个顶点绘制两个三角形,即启用所有边缘的 âˆ' : (v[3], v[4], v[5]), (v[0], v[1], v[2])。
![图显示了一个命令缓冲区,其中D3DDP2OP_INDEXEDTRIANGLELIST命令和两个D3DHAL_DP2INDEXEDTRIANGLELIST结构](images/dp2tlsi.png)
![图显示了具有D3DDP2OP_INDEXEDTRIANGLELIST2命令的缓冲区、D3DHAL_DP2STARTVERTEX偏移量和两个D3DHAL_DP2INDEXEDTRIANGLELIST结构](images/dp2tls2i.png)
要求
要求 | 价值 |
---|---|
标头 | d3dhal.h (包括 D3dhal.h) |
另请参阅
D3DDP2OP_INDEXEDTRIANGLELIST