D3DX11CompileFromResource (Fungsi D3DX11CompileFromResource)

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 menggunakan fungsi sumber daya, lalu mengkompilasi offline dengan menggunakan pengkompilasi baris perintah Fxc.exe atau menggunakan salah satu API kompilasi HLSL, seperti API D3DCompile .

Mengkompilasi shader atau efek dari sumber daya.

Sintaks

HRESULT D3DX11CompileFromResource(
  _In_        HMODULE            hSrcModule,
  _In_        LPCTSTR            pSrcResource,
  _In_        LPCTSTR            pSrcFileName,
  _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

hSrcModule [in]

Jenis: HMODULE

Tangani ke modul sumber daya yang berisi shader. HMODULE dapat diperoleh dengan Fungsi GetModuleHandle.

pSrcResource [in]

Jenis: LPCTSTR

Nama sumber daya yang berisi shader. Jika pengaturan pengkompilasi memerlukan Unicode, jenis data LPCTSTR diselesaikan ke LPCWSTR. Jika tidak, jenis data diselesaikan ke LPCSTR.

pSrcFileName [in]

Jenis: LPCTSTR

Pilihan. Nama file efek, yang digunakan hanya untuk pesan kesalahan. Bisa NULL.

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 shader-entry tempat eksekusi shader dimulai. Saat Anda mengompilasi efek, D3DX11CompileFromResource mengabaikan pFunctionName; kami menyarankan agar Anda mengatur pFunctionName ke NULL karena ini adalah praktik pemrograman yang baik untuk mengatur parameter penunjuk 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).

Flags1 [in]

Jenis: UINT

Bendera kompilasi shader.

Flags2 [in]

Jenis: UINT

Bendera kompilasi efek. Saat Anda mengompilasi shader dan bukan file efek, D3DX11CompileFromResource 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.

D3DX11CompileFromResource mengembalikan E_INVALIDARG jika Anda menyediakan non-NULL ke parameter pHResult saat Anda menyediakan NULL ke parameter pPump . Untuk informasi selengkapnya tentang situasi ini, lihat Keterangan.

Keterangan

Untuk informasi selengkapnya tentang D3DX11CompileFromResource, lihat D3DCompile.

Anda harus menyediakan NULL ke parameter pHResult jika Anda juga menyediakan NULL ke parameter pPump . Jika tidak, Anda kemudian tidak dapat membuat shader dengan menggunakan kode shader yang dikompilasi yang dikembalikan D3DX11CompileFromResource dalam memori yang ditunjukkan parameter ppShader . Untuk membuat shader dari kode shader yang sesuai, Anda memanggil salah satu metode antarmuka ID3D11Device berikut:

Selain itu, jika Anda menyediakan nilai non-NULL ke pHResult saat Anda menyediakan NULL ke pPump, D3DX11CompileFromResource mengembalikan kode kesalahan E_INVALIDARG.

Persyaratan

Persyaratan Nilai
Header
D3DX11async.h
Pustaka
D3DX11.lib

Lihat juga

Fungsi D3DX