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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk