次の方法で共有


PFND3D10DDI_SETPREDICATION コールバック関数 (d3d10umddi.h)

SetPredication 関数は、後続のレンダリング コマンドとリソース操作コマンドを実際に実行するかどうかを指定します。

構文

PFND3D10DDI_SETPREDICATION Pfnd3d10ddiSetpredication;

void Pfnd3d10ddiSetpredication(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HQUERY unnamedParam2,
  BOOL unnamedParam3
)
{...}

パラメーター

unnamedParam1

hDevice [in]

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

unnamedParam2

hQuery [in]

述語として設定するクエリ オブジェクトへのハンドル。 hQueryNULL に設定すると、"事前指定なし" が示されます。 hQueryNULL に設定されている場合、ドライバーは PredicateValue パラメーターの値を無視します。ただし、ドライバーは、値の後続の要求の述語値を格納する必要があります。

unnamedParam3

PredicateValue [in]

クエリ データと比較するブール値。 クエリ データが述語値と等しい場合、次のレンダリングおよびリソース操作コマンドは実行されません。

戻り値

なし

解説

ドライバーは、 pfnSetErrorCb コールバック関数を使用してエラー コードを設定できます。

一部の述語は唯一のヒントです。そのため、実際には操作の実行を妨げるわけではありません。 Microsoft Direct3D ランタイムは、主に SetPredication を呼び出して、 QueryGetData 関数の呼び出しが返されるのを待つパフォーマンスヒットを受けることなく、アプリケーションがグラフィックス コマンドを発行できるようにします。 したがって、 QueryGetData から S_FALSEが返された場合でも、事前指定が行われる可能性があります。 言い換えると、 QueryGetData がS_FALSEを返す可能性がある場合、アプリケーションはフォールバックとしてプリディケーションを使用することもできます。 QueryGetData がS_OKを返す場合、アプリケーションは独自のアプリケーション ロジックを使用してグラフィックス コマンドを手動で呼び出すのをスキップできます。

ドライバーは、D3DDDIERR_DEVICEREMOVEDを除き、エラーが発生しないようにする必要があります。 したがって、ドライバーが pfnSetErrorCb 関数の呼び出しで、D3DDDIERR_DEVICEREMOVEDを除くエラーを渡した場合、Direct3D ランタイムはエラーが重大であると判断します。 デバイスが削除された場合でも、ドライバーはD3DDDIERR_DEVICEREMOVEDを返す必要はありません。ただし、デバイスの削除が SetPredication (通常は発生しないはずです) の操作に干渉した場合、ドライバーはD3DDDIERR_DEVICEREMOVEDを返すことができます。

要件

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

こちらもご覧ください

D3D10DDI_DEVICEFUNCS

pfnSetErrorCb