Metode ID3DXEffectCompiler::CompileShader
Mengkompilasi shader dari efek yang berisi satu atau beberapa fungsi.
Sintaks
HRESULT CompileShader(
[in] D3DXHANDLE hFunction,
[in] LPCSTR pTarget,
[in] DWORD Flags,
[out, retval] LPD3DXBUFFER *ppShader,
[out, retval] LPD3DXBUFFER *ppErrorMsgs,
[out] LPD3DXCONSTANTTABLE *ppConstantTable
);
Parameter
-
hFunction [in]
-
Jenis: D3DXHANDLE
Pengidentifikasi unik untuk fungsi yang akan dikompilasi. Nilai ini tidak boleh NULL. Lihat Handel (Direct3D 9).
-
pTarget [in]
-
Jenis: LPCSTR
Penunjuk ke profil shader yang menentukan set instruksi shader. Lihat D3DXGetVertexShaderProfile atau D3DXGetPixelShaderProfile untuk daftar profil yang tersedia.
-
Bendera [in]
-
Jenis: DWORD
Opsi kompilasi yang diidentifikasi oleh berbagai bendera. Pengkompilasi Direct3D 10 HLSL sekarang menjadi default. Lihat Bendera D3DXSHADER untuk detailnya.
-
ppShader [out, retval]
-
Jenis: LPD3DXBUFFER*
Buffer yang berisi shader yang dikompilasi. Shader pengkompilasi adalah array DWORD. Untuk informasi selengkapnya tentang mengakses buffer, lihat ID3DXBuffer.
-
ppErrorMsgs [out, retval]
-
Jenis: LPD3DXBUFFER*
Buffer yang berisi setidaknya pesan kesalahan kompilasi pertama yang terjadi. Ini termasuk kesalahan kompilator efek dan kesalahan kompilasi bahasa tingkat tinggi. Untuk informasi selengkapnya tentang mengakses buffer, lihat ID3DXBuffer.
-
ppConstantTable [out]
-
Jenis: LPD3DXCONSTANTTABLE*
Mengembalikan antarmuka ID3DXConstantTable , yang dapat digunakan untuk mengakses konstanta shader. Nilai ini bisa NULL. Jika Anda mengkompilasi aplikasi Anda sebagai sadar alamat besar (yaitu, Anda menggunakan opsi linker /LARGEADDRESSAWARE untuk menangani alamat yang lebih besar dari 2 GB), Anda tidak dapat menggunakan parameter ini dan harus mengaturnya ke NULL. Sebagai gantinya, Anda harus menggunakan fungsi D3DXGetShaderConstantTableEx untuk mengambil tabel shader-constant yang disematkan di dalam shader. Dalam panggilan D3DXGetShaderConstantTableEx ini, Anda harus meneruskan bendera D3DXCONSTTABLE_LARGEADDRESSAWARE ke parameter Bendera untuk menentukan akses hingga 4 GB ruang alamat virtual.
Menampilkan nilai
Jenis: HRESULT
Jika metode berhasil, nilai yang dikembalikan S_OK.
Jika argumen tidak valid, metode akan mengembalikan D3DERR_INVALIDCALL.
Jika metode gagal, nilai yang dikembalikan akan E_FAIL.
Keterangan
Target dapat ditentukan untuk shader vertex, shader piksel, dan fungsi pengisian tekstur.
Target | Fungsi |
---|---|
Target shader vertex | vs_1_1, vs_2_0, vs_2_sw, vs_3_0 |
Target shader piksel | ps_1_1, ps_1_2, ps_1_3, ps_1_4, ps_2_0, ps_2_sw, ps_3_0 |
Target pengisian tekstur | tx_0, tx_1 |
Metode ini mengkompilasi shader dari fungsi yang ditulis dalam bahasa seperti C. Untuk informasi selengkapnya, lihat HLSL.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|
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