ID3D10Device::SOSetTargets メソッド (d3d10.h)
StreamOutput ステージのターゲット出力バッファーを設定します。これにより、パイプラインがデータをストリーミングアウトできるようにします。
構文
void SOSetTargets(
[in] UINT NumBuffers,
[in] ID3D10Buffer * const *ppSOTargets,
[in] const UINT *pOffsets
);
パラメーター
[in] NumBuffers
型: UINT
デバイスにバインドするバッファーの数。 最大 4 つの出力バッファーを設定できます。 呼び出しで 4 未満が定義されている場合、残りのバッファー スロットは NULL に設定されます。 「解説」を参照してください。
[in] ppSOTargets
種類: ID3D10Buffer*
デバイスにバインドする出力バッファーの配列 ( ID3D10Buffer を参照)。 バッファーは 、D3D10_BIND_STREAM_OUTPUT フラグを使用して作成されている必要があります。
[in] pOffsets
型: const UINT*
ppSOTargets からの出力バッファーへのオフセットの配列。バッファーごとに 1 つのオフセット。 オフセット値はバイト単位である必要があります。
戻り値
なし
解説
ID3D10Device::SOSetTargets を呼び出して (描画呼び出しの前に)、データをストリーミングアウトします。SOSetTargets を NULL で呼び出して、データのストリーミングを停止します。例については、「GDC 2007 ワークショップの演習 01」を参照してください。このワークショップでは、RenderInstanceToStream 関数で描画メソッドを呼び出す前にストリーム出力 rendertargets を設定します。
オフセットが -1 の場合、ストリーム出力バッファーが追加され、前のストリーム出力パスのバッファーに書き込まれた最後の場所の後に続きます。
現在書き込みにバインドされているバッファーを使用してこのメソッドを呼び出すと、バッファーを入力と出力の両方として同時にバインドできないため、代わりに NULL を 効果的にバインドします。
デバッグ レイヤーは、リソースが入力と出力として同時にバインドされないようにするたびに警告を生成しますが、これにより、無効なデータがランタイムによって使用されるのを防ぐわけではありません。
メソッドは、渡されたインターフェイスへの参照を保持しません。 そのため、アプリケーションでは、デバイスで現在使用されているインターフェイスを解放しないように注意する必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d10.h |
Library | D3D10.lib |