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結構中的頂點快取數據。

規格需求

需求
標頭 d3d9types.h (包含 D3d9types.h)

另請參閱

D3DDP2OP_CREATEQUERY

D3DDP2OP_ISSUEQUERY

D3DHAL_DP2CREATEQUERY

D3DHAL_DP2RESPONSEQUERY

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2

D3dGetDriverState