次の方法で共有


D3DHAL_DP2RESPONSEQUERY構造体 (d3dhal.h)

DirectX 9.0 以降のバージョンのみ。

ランタイムが D3dDrawPrimitives2 コールバックを呼び出した後、ランタイムによって 1 つ以上のD3DHAL_DP2RESPONSEQUERY構造体が応答バッファーから解析されます。 ドライバーは、D3DHAL_DP2RESPONSE 構造体の bCommand メンバーをD3DDP2OP_RESPONSEQUERYに設定して、以前に発行されたクエリへの応答が応答バッファーで使用可能であることを示します。

構文

typedef struct _D3DHAL_DP2RESPONSEQUERY {
  DWORD dwQueryID;
  DWORD dwSize;
} D3DHAL_DP2RESPONSEQUERY;

メンバーズ

dwQueryID

応答データを使用できるクエリを識別します。

dwSize

ドライバーがランタイムに返すクエリ情報のサイズをバイト単位で指定します。

備考

ランタイムは、D3DDP2OP_ISSUEQUERY コマンドを使用して、ドライバーがクエリを処理するように要求します。 ドライバーの D3dDrawPrimitives2 コールバックは、コマンド バッファーから wPrimitiveCount D3DHAL_DP2ISSUEQUERY クエリ構造 処理する必要があります。 wPrimitiveCount の値は、D3DHAL_DP2COMMAND 構造体で指定されます。 ドライバーはこれらのクエリ構造を解析し、ハードウェア固有のコマンドに変換します。

D3DDP2OP_ISSUEQUERY操作を使用して以前にクエリを送信した場合、ドライバーは、D3DHAL_DRAWPRIMITIVES2DATA 構造体の dwErrorOffset メンバー内の応答バッファーのサイズを設定し、正常に完了するためにD3DHAL_DRAWPRIMITIVES2DATAの ddrval メンバーをD3D_OKに設定します。 また、ドライバーは、受信コマンド バッファーを送信応答バッファーで上書きします。 応答バッファー内の各D3DHAL_DP2RESPONSEQUERYの後に、クエリに関連する次のデータが続きます。

  • D3DQUERYTYPE_EVENTの BOOL。 イベントのD3DDP2OP_RESPONSEQUERYで応答する前に、ドライバーは、グラフィックス処理装置 (GPU) がイベントに関連するすべての D3DHAL_DP2OPERATION 操作の処理を完了していることを確認する必要があります。 つまり、ドライバーは、イベントのISSUE_END状態が発生した後にのみ応答します。 ドライバーは、常にイベントの BOOL 値を応答時に TRUE 設定する必要があります。
  • D3DQUERYTYPE_OCCLUSIONの DWORD。 ドライバーは、この DWORD を、クエリの開始と終了の間のすべてのプリミティブに対して z テストが成功したピクセル数に設定します。 深度バッファーがマルチサンプリングの場合、ドライバーはサンプルの数からピクセル数を決定します。 ただし、ディスプレイ デバイスがマルチサンプル z テスト精度に対応している場合は、通常、ピクセル数への変換を切り上げる必要があります。 その後、アプリケーションはオクルージョンの結果を 0 に対してチェックし、実質的に "完全に隠された" を意味します。 マルチサンプリングされた数量をピクセル数量に変換するドライバーは、レンダー ターゲットのマルチサンプリングの変更を検出し、引き続きクエリ結果を適切に計算する必要があります。
  • D3DQUERYTYPE_VCACHEの構造を D3DDEVINFO_VCACHE します。

ランタイムは、返された応答バッファーを解析し、その内部データ構造を更新します。

必要条件

要件 価値
ヘッダー d3dhal.h (D3dhal.h を含む)

関連項目

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2