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时,驱动程序应呈现 wV1wV2 之间的三角形边缘。
D3DTRIFLAG_EDGEENABLE2 当填充模式D3DFILL_WIREFRAME时,驱动程序应呈现 wV2wV3 之间的三角形边缘。
D3DTRIFLAG_EDGEENABLE3 当填充模式D3DFILL_WIREFRAME时,驱动程序应呈现 wV3wV1 之间的三角形边缘。
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结构的命令缓冲区的图 同样,下图显示了包含D3DDP2OP_INDEXEDTRIANGLELIST2命令、D3DHAL_DP2STARTVERTEX偏移量和两个D3DHAL_DP2INDEXEDTRIANGLELIST结构的示例命令缓冲区的一部分。 驱动程序应处理顶点缓冲区中的六个顶点,呈现由 (v[5]、v[6]、v[7]) 、 (v[2]、v[3]、v[4]) 定义的两个三角形。 显示具有D3DDP2OP_INDEXEDTRIANGLELIST2命令、D3DHAL_DP2STARTVERTEX偏移量和两个D3DHAL_DP2INDEXEDTRIANGLELIST结构的缓冲区的图

要求

要求
Header d3dhal.h (包括 D3dhal.h)

另请参阅

D3DDP2OP_INDEXEDTRIANGLELIST

D3DHAL_DP2COMMAND

D3DHAL_DP2STARTVERTEX

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2