ID3D11DeviceContext::SOSetTargets 方法 (d3d11.h)
為管線的數據流輸出階段設定目標輸出緩衝區。
語法
void SOSetTargets(
[in] UINT NumBuffers,
[in, optional] ID3D11Buffer * const *ppSOTargets,
[in, optional] const UINT *pOffsets
);
參數
[in] NumBuffers
類型: UINT
要系結至裝置的緩衝區數目。 最多可以設定四個輸出緩衝區。 如果呼叫定義少於四個,其餘的緩衝區位置會設定為 NULL。 請參閱<備註>。
[in, optional] ppSOTargets
類型: ID3D11Buffer*
輸出緩衝區的陣列 (請參閱 ID3D11Buffer) 系結至裝置。 緩衝區必須已使用 D3D11_BIND_STREAM_OUTPUT 旗標建立。
[in, optional] pOffsets
類型: const UINT*
從 ppSOTargets輸出緩衝區的位移陣列,每個緩衝區都有一個位移。 位移值必須以位元組為單位。
傳回值
無
備註
-1 的位移會導致附加數據流輸出緩衝區,並在上一個數據流輸出傳遞中寫入緩衝區的最後一個位置之後繼續。
使用目前系結以進行寫入的緩衝區呼叫這個方法會有效地系結 NULL ,因為緩衝區無法同時系結為輸入和輸出。
每當資源無法同時系結為輸入和輸出時,偵錯層就會產生警告,但這不會防止運行時間使用無效的數據。
方法會保存傳入之介面的參考。 這與 Direct3D 10 中的裝置狀態行為不同。
請注意,不同於 Direct3D 中的一些其他資源方法,所有目前系結的目標都會透過呼叫 SOSetTargets(0, nullptr, nullptr);
來取消系結。
Windows Phone 8:支援此 API。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | d3d11.h |
程式庫 | D3D11.lib |