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 中指定的大小,因为在大多数情况下,实际缓存大小会变大。 驱动程序仅在 CacheSize 中指定优化的大小(如果驱动程序还指定 OptMethod 成员中的D3DXMESHOPT_VCACHE)。

MagicNumber

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

言论

仅 DirectX 8.1 版本。 Direct3D 运行时调用驱动程序的 D3dGetDriverState 函数,从驱动程序获取顶点缓存信息。 在此 D3dGetDriverState 调用中,运行时指定运行时 dwFlags 中的D3DDEVINFOID_VCACHE标志 运行时所传递DD_GETDRIVERSTATEDATA结构的成员。 驱动程序在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结构中的顶点缓存数据。

要求

要求 价值
标头 d3d9types.h (包括 D3d9types.h)

另请参阅

D3DDP2OP_CREATEQUERY

D3DDP2OP_ISSUEQUERY

D3DHAL_DP2CREATEQUERY

D3DHAL_DP2RESPONSEQUERY

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2

D3dGetDriverState