Fungsi D3DXCompileShaderFromFile

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 D3DXCompileShaderFromFile(
  _In_        LPCTSTR             pSrcFile,
  _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

pSrcFile [in]

Jenis: LPCTSTR

Penunjuk ke string yang menentukan nama file.

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 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_NOTIMPL, E_OUTOFMEMORY.

E_NOTIMPL dikembalikan jika Anda menggunakan shader 1.1 (vs_1_1 dan ps_1_1).

Persyaratan

Persyaratan Nilai
Header
D3DX9Shader.h
Pustaka
D3dx9.lib

Lihat juga

Fungsi Shader

D3DXCompileShader

D3DXCompileShaderFromResource