Metode ID3D11DeviceContext::GSSetConstantBuffers (d3d11.h)

Mengatur buffer konstanta yang digunakan oleh tahap alur shader geometri.

Sintaks

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

Parameter

[in] StartSlot

Jenis: UINT

Indeks ke dalam array berbasis nol perangkat untuk mulai mengatur buffer konstan ke (berkisar dari 0 hingga D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1).

[in] NumBuffers

Jenis: UINT

Jumlah buffer yang akan diatur (berkisar dari 0 hingga D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot).

[in, optional] ppConstantBuffers

Jenis: ID3D11Buffer*

Array buffer konstanta (lihat ID3D11Buffer) diberikan ke perangkat.

Mengembalikan nilai

Tidak ada

Keterangan

Metode ini akan menyimpan referensi ke antarmuka yang diteruskan. Ini berbeda dari perilaku status perangkat di Direct3D 10.

Anda tidak dapat menggunakan antarmuka ID3D11ShaderReflectionConstantBuffer untuk mendapatkan informasi tentang apa yang saat ini terikat ke alur dalam konteks perangkat. Tetapi Anda dapat menggunakan ID3D11ShaderReflectionConstantBuffer untuk mendapatkan informasi dari shader yang dikompilasi. Misalnya, Anda dapat menggunakan ID3D11ShaderReflectionConstantBuffer dan ID3D11ShaderReflectionVariable untuk menentukan slot tempat shader geometri mengharapkan buffer konstanta. Anda kemudian dapat meneruskan nomor slot ini ke GSSetConstantBuffers untuk mengatur buffer konstanta. Anda dapat memanggil fungsi D3D11Reflect untuk mengambil alamat penunjuk ke antarmuka ID3D11ShaderReflection lalu memanggil ID3D11ShaderReflection::GetConstantBufferByName untuk mendapatkan pointer ke ID3D11ShaderReflectionConstantBuffer.

Runtime Direct3D 11.1, yang tersedia dimulai dengan Windows 8, dapat mengikat sejumlah besar sumber daya ID3D11Buffer ke shader daripada ukuran buffer konstan maksimum yang didukung oleh shader (masing-masing konstanta 4096 –masing-masing komponen 4 32-bit). Ketika Anda mengikat buffer besar seperti itu, shader hanya dapat mengakses konstanta komponen 4096 432-bit pertama dalam buffer, seolah-olah konstanta 4096 adalah ukuran penuh buffer.

Jika aplikasi ingin shader mengakses bagian lain dari buffer, aplikasi harus memanggil metode GSSetConstantBuffers1 sebagai gantinya.

Persyaratan

   
Target Platform Windows
Header d3d11.h
Pustaka D3D11.lib

Lihat juga

ID3D11DeviceContext