ID3D11DeviceContext::SOSetTargets

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

void 
SOSetTargets(
  UINT NumBuffers,
  ID3D11Buffer *const *ppSOTargets,
  const UINT *pOffsets
);

パラメータ

  • NumBuffers
    デバイスにバインドするバッファーの数です。最大で 4 つの出力バッファーを設定できます。呼び出しで定義されるバッファー数が 4 つに満たない場合、残りのバッファー スロットは NULL に設定されます。「解説」を参照してください。
  • ppSOTargets
    デバイスにバインドされる出力バッファーの配列です (「ID3D11Buffer」を参照してください)。バッファーは、D3D11_BIND_STREAM_OUTPUT フラグを使用してあらかじめ作成しておく必要があります。
  • pOffsets
    ppSOTargets から出力バッファーまでのオフセットの配列です。オフセットは、バッファーごとに 1 つ設定します。オフセット値はバイト単位にする必要があります。

戻り値

返されるものはありません。

解説 

オフセットが -1 の場合、以前のストリーム出力で渡されたバッファーに最後に書き込まれた位置の後ろに続けて、ストリーム出力バッファーが追加されます。

バッファーを入力および出力として同時にバインドすることはできないため、書き込み用に現在バインドされているバッファーを使用してこのメソッドを呼び出すと、実際には NULL がバインドされます。

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

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

要件

ヘッダー: D3D11.h 宣言

ライブラリ: D3D11.lib 内容

関連項目

ID3D11DeviceContext