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 コールバックは、コマンド バッファーからクエリ構造D3DHAL_DP2ISSUEQUERYwPrimitiveCount を処理する必要があります。 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 に設定する必要があります。
  • DWORD for D3DQUERYTYPE_OCCLUSION。 ドライバーは、この DWORD を、クエリの開始と終了の間のすべてのプリミティブに対して z テストが合格したピクセル数に設定します。 深度バッファーがマルチサンプリングされている場合、ドライバーはサンプルの数からピクセル数を決定します。 ただし、ディスプレイ デバイスがマルチサンプリング z テスト精度に対応している場合は、通常、ピクセル数への変換を切り上げる必要があります。 その後、アプリケーションは 0 に対してオクルージョン結果をチェックして、実質的に "完全に隠された" を意味します。 マルチサンプリングされた数量をピクセル数量に変換するドライバーは、レンダー ターゲットのマルチサンプリングの変更を検出し、引き続きクエリ結果を適切に計算する必要があります。
  • D3DQUERYTYPE_VCACHEのD3DDEVINFO_VCACHE 構造。

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

要件

要件
Header d3dhal.h (D3dhal.h を含む)

こちらもご覧ください

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2