次の方法で共有


ID3D10Device::SOSetTargets

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

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

パラメータ

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

戻り値

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

解説 

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

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

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

このメソッドは、渡されたインターフェイスの参照数を保持しません。そのため、現在デバイスで使用中のインターフェイスが解放されないようにアプリケーションで配慮する必要があります。

要件

ヘッダー: D3D10.h 宣言

関連項目

ID3D10Device インターフェイス