次の方法で共有


ID3D11DeviceContext::SetPredication メソッド (d3d11.h)

レンダリング述語を設定します。

構文

void SetPredication(
  [in, optional] ID3D11Predicate *pPredicate,
  [in]           BOOL            PredicateValue
);

パラメーター

[in, optional] pPredicate

種類: ID3D11Predicate*

レンダリング述語を表す ID3D11Predicate インターフェイスへのポインター。 NULL 値は、"いいえ" の事前指定を示します。この場合、PredicateValue の値は無関係ですが、ID3D11DeviceContext::GetPredication には保持されます。

[in] PredicateValue

種類: BOOL

TRUE の場合、述語の条件が満たされたときにレンダリングが影響を受けます。 FALSE の場合、条件が満たされない場合、レンダリングが影響を受けます。

戻り値

なし

解説

述語は、割り当てに使用される "発行済み" または "シグナル化された" 状態である必要があります。 述語が事前指定用に設定されている間、 ID3D11DeviceContext::BeginID3D11DeviceContext::End の呼び出しは無効です。

このメソッドを使用して、述語の結果の述語データが PredicateValue と等しい場合、後続のレンダリングおよびリソース操作コマンドが実際には実行されないことを示します。 ただし、一部の述語はヒントに過ぎないため、実際には操作の実行を妨げない可能性があります。

準備の主な有用性は、 ID3D11DeviceContext::GetData が返されるのを待ち、スピンのパフォーマンスヒットを受けることなく、アプリケーションがレンダリングコマンドとリソース操作コマンドを発行できるようにすることです。 そのため、 ID3D11DeviceContext::GetDataS_FALSEを返す間に、割り当てが発生する可能性があります。 もう 1 つの考え方: ID3D11DeviceContext::GetDataS_FALSEを返す可能性がある場合、アプリケーションはフォールバックとしてプリケーションを使用することもできます。 ID3D11DeviceContext::GetData がS_OKを返した場合、アプリケーションは、独自のアプリケーション ロジックを使用してレンダリングコマンドとリソース操作コマンドを手動で呼び出すのをスキップできます。

Direct3D 11 のレンダリングおよびリソース操作コマンドには、描画、ディスパッチ、コピー、更新、クリア、生成、解決の各操作が含まれます。

レンダリング述語は、即時コンテキストまたは遅延コンテキストに設定できます。 即時および遅延コンテキストの詳細については、「 イミディエイト レンダリングと遅延レンダリング」を参照してください。

要件

要件
対象プラットフォーム Windows
ヘッダー d3d11.h
Library D3D11.lib

こちらもご覧ください

ID3D11DeviceContext