Bagikan melalui


Fungsi D3DXCreateEffectEx

Membuat efek dari ASCII atau deskripsi efek biner. Fungsi ini adalah versi yang diperluas dari D3DXCreateEffect yang memungkinkan aplikasi untuk mengontrol parameter mana yang diabaikan oleh sistem efek.

Sintaks

HRESULT D3DXCreateEffectEx(
  _In_        LPDIRECT3DDEVICE9 pDevice,
  _In_        LPCVOID           pSrcData,
  _In_        UINT              SrcDataLen,
  _In_  const D3DXMACRO         *pDefines,
  _In_        LPD3DXINCLUDE     pInclude,
  _In_        LPCSTR            pSkipConstants,
  _In_        DWORD             Flags,
  _In_        LPD3DXEFFECTPOOL  pPool,
  _Out_       LPD3DXEFFECT      *ppEffect,
  _Out_       LPD3DXBUFFER      *ppCompilationErrors
);

Parameter

pDevice [in]

Jenis: LPDIRECT3DDEVICE9

Penunjuk ke perangkat yang akan membuat efeknya. Lihat IDirect3DDevice9.

pSrcData [in]

Jenis: LPCVOID

Penunjuk ke buffer yang berisi deskripsi efek.

SrcDataLen [in]

Jenis: UINT

Panjang data efek, dalam byte.

pDefines [in]

Jenis: const D3DXMACRO*

Array struktur D3DXMACRO opsional yang dihentikan NULL yang menjelaskan definisi prapemrosuaian. Nilai ini bisa 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.

pSkipConstants [in]

Jenis: LPCSTR

String parameter efek yang akan diabaikan oleh sistem efek. String harus dihentikan NULL , dan perlu berisi nama setiap konstanta yang dikelola aplikasi yang dipisahkan oleh titik koma.

Bendera [in]

Jenis: DWORD

Jika pSrcData berisi efek teks, bendera dapat berupa kombinasi Bendera D3DXSHADER dan benderaD3DXFX ; jika tidak, pSrcData berisi efek biner dan satu-satunya bendera yang dihormati adalah bendera D3DXFX. Pengkompilasi Direct3D 10 HLSL sekarang menjadi default. Lihat Alat Pengkompilasi Efek untuk detailnya.

pPool [in]

Jenis: LPD3DXEFFECTPOOL

Arahkan ke objek ID3DXEffectPool untuk digunakan untuk parameter bersama. Jika nilai ini NULL, tidak ada parameter yang akan dibagikan.

ppEffect [out]

Jenis: LPD3DXEFFECT*

Mengembalikan penunjuk ke antarmuka ID3DXEffect .

ppCompilationErrors [out]

Jenis: LPD3DXBUFFER*

Mengembalikan buffer yang berisi daftar kesalahan kompilasi.

Menampilkan 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_OUTOFMEMORY.

Keterangan

Fungsi ini adalah versi yang diperluas dari D3DXCreateEffect yang memungkinkan aplikasi menentukan konstanta efek mana yang akan dikelola oleh aplikasi. Konstanta yang dikelola oleh aplikasi diabaikan oleh sistem efek. Artinya, aplikasi bertanggung jawab untuk menginisialisasi konstanta serta menyimpan dan memulihkan statusnya kapan pun sesuai.

Fungsi ini memeriksa setiap konstanta dalam pSkipConstants untuk melihat bahwa:

  • Ini terikat ke register konstan.
  • Ini hanya digunakan dalam kode shader HLSL.

Jika konstanta dinamai dalam string yang tidak ada dalam efek, konstanta akan diabaikan.

Persyaratan

Persyaratan Nilai
Header
D3DX9Effect.h
Pustaka
D3dx9.lib

Lihat juga

Fungsi Efek

D3DXCreateEffectFromFileEx

D3DXCreateEffectFromResourceEx