ID3D10Device::SOSetTargets
ストリーム出力ステージにターゲット出力バッファーを設定します。これにより、データをストリーム出力するパイプラインを有効または無効にします。
void
SOSetTargets(
UINT NumBuffers,
ID3D10Buffer *const *ppSOTargets,
const UINT *pOffsets
);
パラメータ
- NumBuffers
デバイスにバインドするバッファーの数です。最大で 4 つの出力バッファーを設定できます。呼び出しで定義されるバッファー数が 4 つに満たない場合、残りのバッファー スロットは NULL に設定されます。「解説」を参照してください。 - ppSOTargets
デバイスにバインドされる出力バッファーの配列です (「ID3D10Buffer」を参照してください)。バッファーは、D3D10_BIND_STREAM_OUTPUT フラグを使用してあらかじめ作成しておく必要があります。 - pOffsets
ppSOTargets から出力バッファーまでのオフセットの配列です。オフセットは、バッファーごとに 1 つ設定します。オフセット値はバイト単位にする必要があります。
戻り値
返されるものはありません。
解説
データをストリーム出力するには、他の描画関数呼び出しの前に ID3D10Device::SOSetTargets を呼び出し、データのストリーム出力を停止するには、NULL を指定して SOSetTargets を NULL を呼び出します。例については、GDC 2007 ワークショップの「演習 01」を参照してください。この演習では、RenderInstanceToStream 関数で描画メソッドを呼び出す前に、ストリーム出力レンダー ターゲットを設定します。
オフセットが -1 の場合、以前のストリーム出力で渡されたバッファーに最後に書き込まれた位置の後ろに続けて、ストリーム出力バッファーが追加されます。
バッファーを入力および出力として同時にバインドすることはできないため、書き込み用に現在バインドされているバッファーを使用してこのメソッドを呼び出すと、実際には NULL がバインドされます。
リソースを入力および出力として同時にバインドすることが防止された場合には必ず、デバッグ レイヤーによって警告が生成されます。ただし、これによって無効なデータがランタイムで使用されるのを防止するというわけではありません。
このメソッドは、渡されたインターフェイスの参照数を保持しません。そのため、現在デバイスで使用中のインターフェイスが解放されないようにアプリケーションで配慮する必要があります。
要件
ヘッダー: D3D10.h 宣言
ライブラリ: D3D10.lib 内容