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

パイプラインのストリーム出力ステージのターゲット出力バッファーを設定します。

構文

void SOSetTargets(
  [in]           UINT         NumBuffers,
  [in, optional] ID3D11Buffer * const *ppSOTargets,
  [in, optional] const UINT   *pOffsets
);

パラメーター

[in] NumBuffers

型: UINT

デバイスにバインドするバッファーの数。 最大 4 つの出力バッファーを設定できます。 呼び出しで 4 未満が定義されている場合、残りのバッファー スロットは NULL に設定されます。 「解説」を参照してください。

[in, optional] ppSOTargets

種類: ID3D11Buffer*

デバイスにバインドする出力バッファーの配列 ( ID3D11Buffer を参照)。 バッファーは 、D3D11_BIND_STREAM_OUTPUT フラグを使用して作成されている必要があります。

[in, optional] pOffsets

型: const UINT*

ppSOTargets からの出力バッファーへのオフセットの配列。バッファーごとに 1 つのオフセット。 オフセット値はバイト単位である必要があります。

戻り値

なし

解説

オフセットが -1 の場合、ストリーム出力バッファーが追加され、前のストリーム出力パスのバッファーに書き込まれた最後の場所の後に続きます。

現在書き込みにバインドされているバッファーを使用してこのメソッドを呼び出すと、バッファーを入力と出力の両方として同時にバインドできないため、代わりに NULL を 効果的にバインドします。

デバッグ レイヤーは、リソースが入力と出力として同時にバインドされないようにするたびに警告を生成しますが、これにより、無効なデータがランタイムによって使用されるのを防ぐわけではありません。

メソッドは、渡されたインターフェイスへの参照を保持します。 これは、Direct3D 10 のデバイス状態の動作とは異なります。

Direct3D の他のリソース メソッドとは異なり、 を呼び出 SOSetTargets(0, nullptr, nullptr);すことで、現在バインドされているすべてのターゲットがバインド解除されることに注意してください。

Windows Phone 8: この API はサポートされています。

要件

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

こちらもご覧ください

ID3D11DeviceContext