ID3D10Device::SOSetTargets 方法 (d3d10.h)

設定 StreamOutput 階段的目標輸出緩衝區,以啟用/停用管線以串流輸出數據。

語法

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

參數

[in] NumBuffers

類型: UINT

要系結至裝置的緩衝區數目。 最多可以設定四個輸出緩衝區。 如果呼叫定義少於四個,其餘的緩衝區位置會設定為 NULL。 請參閱<備註>。

[in] ppSOTargets

類型: ID3D10Buffer*

輸出緩衝區的陣列 (請參閱 ID3D10Buffer) 以繫結至裝置。 緩衝區必須已使用 D3D10_BIND_STREAM_OUTPUT 旗標建立。

[in] pOffsets

類型: const UINT*

從ppSOTargets輸出緩衝區的位移陣列,每個緩衝區各一個位移。 位移值必須以位元組為單位。

傳回值

備註

呼叫 ID3D10Device::SOSetTargets (,再呼叫任何繪製呼叫) 串流數據;使用 NULL 呼叫 SOSetTargets 以停止串流資料輸出。如需範例,請參閱 GDC 2007 工作坊中的練習 01,這會在 RenderInstanceToStream 函式中呼叫繪製方法之前,先設定串流輸出轉譯目標。

-1 的位移會導致附加數據流輸出緩衝區,並在上一個數據流輸出傳遞中寫入緩衝區的最後一個位置之後繼續進行。

使用目前系結以進行寫入的緩衝區呼叫這個方法,將會有效地系結 NULL ,因為緩衝區無法同時系結為輸入和輸出。

每當資源無法同時系結為輸入和輸出時,偵錯 將會產生警告,但這不會防止運行時間使用無效的數據。

方法不會保存傳入之介面的參考。 基於這個理由,應用程式應該小心不要釋放裝置目前使用的介面。

規格需求

需求
目標平台 Windows
標頭 d3d10.h
程式庫 D3D10.lib

另請參閱

ID3D10Device 介面