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 struktur D3DXMACRO opsional yang dihentikan NULL. 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

Arahkan 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 tautan /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.

Mengembalikan nilai

Jenis: HRESULT

Jika fungsi berhasil, nilai yang dikembalikan adalah D3D_OK. Jika fungsi gagal, nilai yang dikembalikan dapat berupa salah satu hal 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