次の方法で共有


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 オペレーティング システムで使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー d3dumddi.h (D3dumddi.h を含む)

関連項目

D3DDDIARG_CREATEQUERY

D3DDDIDEVINFO_VCACHE

D3DDDI_DEVICEFUNCS

D3DDDI_ISSUEQUERYFLAGS