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 4 文字コード (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