Fungsi D3DXCompileShader
Mengkompilasi file shader.
Catatan
Alih-alih menggunakan fungsi warisan ini, kami sarankan Anda mengkompilasi offline dengan menggunakan pengkompilasi baris perintah Fxc.exe atau menggunakan API D3DCompile .
Sintaks
HRESULT D3DXCompileShader(
_In_ LPCSTR pSrcData,
_In_ UINT srcDataLen,
_In_ const D3DXMACRO *pDefines,
_In_ LPD3DXINCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ DWORD Flags,
_Out_ LPD3DXBUFFER *ppShader,
_Out_ LPD3DXBUFFER *ppErrorMsgs,
_Out_ LPD3DXCONSTANTTABLE *ppConstantTable
);
Parameter
-
pSrcData [in]
-
Jenis: LPCSTR
Penunjuk ke string yang berisi shader.
-
srcDataLen [in]
-
Jenis: UINT
Panjang data dalam byte.
-
pDefines [in]
-
Jenis: const D3DXMACRO*
Array opsional NULL yang dihentikan dari struktur D3DXMACRO . Nilai ini mungkin NULL.
-
pInclude [in]
-
Jenis: LPD3DXINCLUDE
Penunjuk antarmuka opsional, ID3DXInclude, untuk digunakan untuk menangani arahan #include. Jika nilai ini NULL, #includes akan dihormati saat mengkompilasi dari file atau akan menyebabkan kesalahan saat dikompilasi dari sumber daya atau memori.
-
pFunctionName [in]
-
Jenis: LPCSTR
Penunjuk ke string yang berisi nama fungsi titik entri shader tempat eksekusi dimulai.
-
pProfile [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]
-
Jenis: LPD3DXBUFFER*
Mengembalikan buffer yang berisi shader yang dibuat. Buffer ini berisi kode shader yang dikompilasi, serta informasi tabel debug dan simbol yang disematkan.
-
ppErrorMsgs [out]
-
Jenis: LPD3DXBUFFER*
Mengembalikan buffer yang berisi daftar kesalahan dan peringatan yang ditemui selama kompilasi. Ini adalah pesan yang sama yang ditampilkan debugger saat berjalan dalam mode debug. Nilai ini mungkin NULL.
-
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 konstanta shader yang disematkan di dalam shader. Dalam panggilan D3DXGetShaderConstantTableEx ini, Anda harus meneruskan bendera D3DXCONSTTABLE_LARGEADDRESSAWARE ke parameter Bendera untuk menentukan untuk mengakses hingga 4 GB ruang alamat virtual.
Menampilkan nilai
Jenis: HRESULT
Jika fungsi berhasil, nilai yang dikembalikan adalah D3D_OK. Jika fungsi gagal, nilai yang dikembalikan bisa menjadi salah satu dari yang berikut: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|
Lihat juga