D3DDEVINFO_VCACHE 结构 (d3d9types.h)

仅限 DirectX 8.1 及更高版本。

D3DDEVINFO_VCACHE结构描述设备的顶点缓存信息。

语法

typedef struct _D3DDEVINFO_VCACHE {
  DWORD Pattern;
  DWORD OptMethod;
  DWORD CacheSize;
  DWORD MagicNumber;
} D3DDEVINFO_VCACHE, *LPD3DDEVINFO_VCACHE;

成员

Pattern

指定位模式。 驱动程序必须将位模式指定为 CACH 四字符代码, (FOURCC) 值。 驱动程序可以使用 MAKEFOURCC 宏,如下所示将 FOURCC 值指定为 CACH:

MAKEFOURCC('C', 'A', 'C', 'H');

OptMethod

指定网格优化的方法。 驱动程序可以使用下列值之一来指定它使用的网格优化:

含义
D3DXMESHOPT_STRIPREORDER (0) 最长条带优化
D3DXMESHOPT_VCACHE (1) 基于顶点缓存的优化

CacheSize

指定驱动程序优化顶点缓存的有效大小(以条目为单位)。 实际缓存大小不需要是 CacheSize 中指定的大小,因为在大多数情况下,实际缓存大小会更大。 如果驱动程序还指定 OptMethod 成员中的D3DXMESHOPT_VCACHE,则驱动程序仅在 CacheSize 中指定优化的大小。

MagicNumber

指定在确定何时重启条带列表时,应用作试错过程一部分的数字。 可以将此数字从 1 设置为 CacheSize 成员中的值。 通常,最佳值接近 CacheSize/2。

注解

仅限 DirectX 8.1 版本。 Direct3D 运行时调用驱动程序的 D3dGetDriverState 函数,以从驱动程序获取顶点缓存信息。 在此 D3dGetDriverState 调用中,运行时在运行时传递的 DD_GETDRIVERSTATEDATA 结构的 dwFlags 成员中指定D3DDEVINFOID_VCACHE标志。 驱动程序在 D3DDEVINFO_VCACHE 结构中指定顶点缓存信息,并在 DD_GETDRIVERSTATEDATA 的 lpdwStates 成员处返回此信息。

仅限 DirectX 9.0 及更高版本。 Direct3D 运行时在调用驱动程序的 D3dDrawPrimitives2 回调时指定D3DDP2OP_CREATEQUERY和D3DDP2OP_ISSUEQUERY命令,以便为查询创建驱动程序端资源,然后异步查询驱动程序以获取顶点缓存信息。 在使用 D3DDP2OP_CREATEQUERY 命令的调用中,运行时在 D3DHAL_DP2CREATEQUERY 结构的 QueryType 成员中指定 D3DQUERYTYPE_VCACHE查询 类型。

当驱动程序完成顶点缓存查询时,驱动程序在 D3DHAL_DRAWPRIMITIVES2DATA 结构的 dwErrorOffset 成员中设置响应缓冲区的总大小,并将 D3DHAL_DRAWPRIMITIVES2DATA 的 ddrval 成员设置为D3D_OK以成功完成。 驱动程序还会使用传出响应缓冲区覆盖传入命令缓冲区。 此响应缓冲区包含一个 D3DHAL_DP2RESPONSEQUERY 结构,用于标识顶点缓存查询的响应。 此D3DHAL_DP2RESPONSEQUERY后跟D3DDEVINFO_VCACHE结构中的顶点缓存数据。

要求

要求
Header d3d9types.h (包括 D3d9types.h)

另请参阅

D3DDP2OP_CREATEQUERY

D3DDP2OP_ISSUEQUERY

D3DHAL_DP2CREATEQUERY

D3DHAL_DP2RESPONSEQUERY

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2

D3dGetDriverState