PFND3DDDI_CREATEQUERY コールバック関数 (d3dumddi.h)

CreateQuery 関数は、Microsoft Direct3D ランタイムが後で処理のために発行するクエリのドライバー側リソースを作成します。

構文

PFND3DDDI_CREATEQUERY Pfnd3dddiCreatequery;

HRESULT Pfnd3dddiCreatequery(
  HANDLE hDevice,
  D3DDDIARG_CREATEQUERY *unnamedParam2
)
{...}

パラメーター

hDevice

ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。

unnamedParam2

pData [in, out]

クエリを識別する D3DDDIARG_CREATEQUERY 構造体へのポインター。

戻り値

CreateQuery は 、次のいずれかの値を返します。

リターン コード 説明
S_OK クエリが正常に作成されました。
E_OUTOFMEMORY CreateQuery は 、完了するために必要なメモリを割り当てませんでした。

注釈

Direct3D ランタイムは、クエリの種類を持つユーザー モード ディスプレイ ドライバーの CreateQuery 関数を呼び出して、クエリのリソースを作成します。 ユーザー モード ディスプレイ ドライバーは、クエリの種類に対して次のリソースを作成します。

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

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム デスクトップ
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDIARG_CREATEQUERY

D3DDDIDEVINFO_VCACHE

D3DDDI_DEVICEFUNCS

D3DDDI_ISSUEQUERYFLAGS