共用方式為


ID3D11DeviceContext::D SSetConstantBuffers 方法 (d3d11.h)

設定網域著色器階段所使用的常數緩衝區。

語法

void DSSetConstantBuffers(
  [in]           UINT         StartSlot,
  [in]           UINT         NumBuffers,
  [in, optional] ID3D11Buffer * const *ppConstantBuffers
);

參數

[in] StartSlot

類型:UINT

索引到以零起始的陣列,開始將常數緩衝區設定為 (範圍從 0 到 D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1)。

[in] NumBuffers

類型:UINT

要設定的緩衝區數目(範圍從 0 到 D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot)。

[in, optional] ppConstantBuffers

類型:ID3D11Buffer*

常數緩衝區的陣列(請參閱 ID3D11Buffer)提供給裝置。

傳回值

沒有

言論

方法會保存傳入之介面的參考。 這與 Direct3D 10 中的裝置狀態行為不同。

從 Windows 8 開始提供的 Direct3D 11.1 運行時間,可以將較多的 ID3D11Buffer 資源系結至著色器,而不是著色器支援的常數緩衝區大小上限 (4096 常數 – 432 位元件)。當您系結這類大型緩衝區時,著色器只能存取緩衝區中的前 4096 432 位元件常數,就好像 4096 常數是緩衝區的完整大小。

如果應用程式想要著色器存取緩衝區的其他部分,則必須改為呼叫 DSSetConstantBuffers1 方法。

Windows Phone 8: 支援此 API。

要求

要求 價值
目標平臺 窗戶
標頭 d3d11.h
連結庫 D3D11.lib

另請參閱

ID3D11DeviceContext