Fungsi D3DX11CompileFromFile
Catatan
Pustaka utilitas D3DX (D3DX 9, D3DX 10, dan D3DX 11) tidak digunakan lagi untuk Windows 8 dan tidak didukung untuk aplikasi Windows Store.
Catatan
Alih-alih menggunakan fungsi ini, kami sarankan Anda mengompilasi offline dengan menggunakan pengompilasi baris perintah Fxc.exe atau menggunakan salah satu API kompilasi HLSL, seperti API D3DCompileFromFile .
Mengkompilasi shader atau efek dari file.
Sintaks
HRESULT D3DX11CompileFromFile(
_In_ LPCTSTR pSrcFile,
_In_ const D3D10_SHADER_MACRO *pDefines,
_In_ LPD3D10INCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ UINT Flags1,
_In_ UINT Flags2,
_In_ ID3DX11ThreadPump *pPump,
_Out_ ID3D10Blob **ppShader,
_Out_ ID3D10Blob **ppErrorMsgs,
_Out_ HRESULT *pHResult
);
Parameter
-
pSrcFile [in]
-
Jenis: LPCTSTR
Nama file yang berisi kode shader. Jika pengaturan pengkompilasi memerlukan Unicode, jenis data LPCTSTR diselesaikan ke LPCWSTR. Jika tidak, jenis data diselesaikan ke LPCSTR.
-
pDefines [in]
-
Jenis: const D3D10_SHADER_MACRO*
Pilihan. Penunjuk ke array definisi makro (lihat D3D10_SHADER_MACRO). Struktur terakhir dalam array berfungsi sebagai terminator dan harus mengatur semua anggota ke 0. Jika tidak digunakan, atur pDefines ke NULL.
-
pInclude [in]
-
Jenis: LPD3D10INCLUDE
Pilihan. Penunjuk ke antarmuka untuk penanganan mencakup file. Mengatur ini ke NULL akan menyebabkan kesalahan kompilasi jika shader berisi #include.
-
pFunctionName [in]
-
Jenis: LPCSTR
Nama fungsi titik masuk shader tempat eksekusi shader dimulai. Saat Anda mengompilasi efek, D3DX11CompileFromFile mengabaikan pFunctionName; kami menyarankan agar Anda mengatur pFunctionName ke NULL karena ini adalah praktik pemrograman yang baik untuk mengatur parameter pointer ke NULL jika fungsi yang dipanggil tidak akan menggunakannya.
-
pProfile [in]
-
Jenis: LPCSTR
String yang menentukan model shader; dapat berupa profil apa pun dalam model shader 2, model shader 3, model shader 4, atau model shader 5. Profil juga dapat untuk jenis efek (misalnya, fx_4_1).
-
Bendera1 [in]
-
Jenis: UINT
Bendera kompilasi shader.
-
Flags2 [in]
-
Jenis: UINT
Bendera kompilasi efek. Saat Anda mengompilasi shader dan bukan file efek, D3DX11CompileFromFile mengabaikan Flags2; kami menyarankan agar Anda mengatur Flags2 ke nol karena ini adalah praktik pemrograman yang baik untuk mengatur parameter nonpointer ke nol jika fungsi yang dipanggil tidak akan menggunakannya.
-
pPump [in]
-
Jenis: ID3DX11ThreadPump*
Penunjuk ke antarmuka pompa utas (lihat Antarmuka ID3DX11ThreadPump). Gunakan NULL untuk menentukan bahwa fungsi ini tidak boleh kembali sampai selesai.
-
ppShader [out]
-
Jenis: ID3D10Blob**
Pointer ke memori yang berisi shader yang dikompilasi, serta informasi debug dan tabel simbol yang disematkan.
-
ppErrorMsgs [out]
-
Jenis: ID3D10Blob**
Pointer ke memori yang berisi daftar kesalahan dan peringatan yang terjadi selama kompilasi. Kesalahan dan peringatan ini identik dengan output debug dari debugger.
-
pHResult [out]
-
Jenis: HRESULT*
Penunjuk ke nilai yang dikembalikan. Mungkin NULL. Jika pPump bukan NULL, maka pHResult harus menjadi lokasi memori yang valid hingga eksekusi asinkron selesai.
Mengembalikan nilai
Jenis: HRESULT
Nilai yang dikembalikan adalah salah satu nilai yang tercantum dalam Direct3D 11 Return Codes.
D3DX11CompileFromFile mengembalikan E_INVALIDARG jika Anda menyediakan nilai non-NULL ke parameter pHResult saat Anda menyediakan NULL ke parameter pPump . Untuk informasi selengkapnya tentang situasi ini, lihat Komentar.
Keterangan
Untuk informasi selengkapnya tentang D3DX11CompileFromFile, lihat D3DCompile.
Anda harus menyediakan NULL ke parameter pHResult jika Anda juga menyediakan NULL ke parameter pPump . Jika tidak, Anda tidak dapat membuat shader dengan menggunakan kode shader yang dikompilasi yang dikembalikan D3DX11CompileFromFile dalam memori yang ditunjuk parameter ppShader . Untuk membuat shader dari kode shader yang sesuai, Anda memanggil salah satu metode antarmuka ID3D11Device berikut:
- CreateComputeShader
- CreateDomainShader
- CreateGeometryShader
- CreateGeometryShaderWithStreamOutput
- CreateHullShader
- CreatePixelShader
- CreateVertexShader
Selain itu, jika Anda menyediakan nilai non-NULL ke pHResult saat Anda menyediakan NULL ke pPump, D3DX11CompileFromFile mengembalikan kode kesalahan E_INVALIDARG.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|