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

另請參閱

ID3D11DeviceContext