次の方法で共有


IDirect3DQuery9::GetData メソッド

IDirect3DQuery9::GetData メソッド

問い合わせ情報を取得する。

構文

HRESULT GetData(      
    void* pData,
    DWORD dwSize,
    DWORD dwGetDataFlags
);

パラメータ

  • pData
    [in, out] 問い合わせデータを含むバッファへのポインタ。
  • dwSize
    [in] データのバイト数。「注意」を参照すること。
  • dwGetDataFlags
    [in] 問い合わせの種類を示すデータ フラグ。有効な値は 0 または D3DGETDATA_FLUSH で、これによりランタイムが問い合わせをドライバにフラッシュする。「注意」を参照すること。

戻り値

問い合わせデータが使用可能な場合は S_OK を、そうでない場合は S_FALSE を返す。これらは、成功の戻り値と見なされる。

D3DGETDATA_FLUSH を使ったときにメソッドが失敗した場合、戻り値は D3DERR_DEVICELOST となることがある。

注意

アプリケーションは、問い合わせ結果に適した正しいデータ量を渡す必要がある。問い合わせ結果が利用可能な場合、ランタイムは問い合わせデータを返す。

dwSize のサイズは、次に示すように、問い合わせの種類によって異なる。

問い合わせの種類 サイズ
D3DQUERYTYPE_VCACHE sizeof(D3DDEVINFO_VCACHE)
D3DQUERYTYPE_RESOURCEMANAGER sizeof(D3DDEVINFO_RESOURCEMANAGER)
D3DQUERYTYPE_VERTEXSTATS sizeof(D3DDEVINFO_D3DVERTEXSTATS)
D3DQUERYTYPE_EVENT sizeof(BOOL)
D3DQUERYTYPE_OCCLUSION sizeof(DWORD)

内部的にバッチされた問い合わせをドライバにフラッシュするには、D3DGETDATA_FLUSH を使う。独自のバージョンの「待機」を書き込むアプリケーションの場合、ドライバがフラッシュを受け取るまでは、ドライバからの問い合わせ結果は実現されず、バッチされる。

D3DGETDATA_FLUSH を指定した場合、このメソッドは、消失したデバイスへの応答として D3DERR_DEVICELOST を返すこともある。これは、消失したデバイスが問い合わせに応答できないために、スレッドが永久に問い合わせを続けるのを防ぐためである。

参照

D3DDEVINFO_VCACHED3DDEVINFO_RESOURCEMANAGERD3DDEVINFO_D3DVERTEXSTATS