Bagikan melalui


struktur D3DHAL_DP2VERTEXSHADER (d3dhal.h)

DirectX 8.0 dan versi yang lebih baru saja.

Struktur D3DHAL_DP2VERTEXSHADER mengatur shader vertex saat ini, atau menghapus shader vertex, tergantung pada opcode yang diterima (D3DDP2OP_SETVERTEXSHADER atau D3DDP2OP_DELETEVERTEXSHADER) oleh D3dDrawPrimitives2.

Sintaks

typedef struct _D3DHAL_DP2VERTEXSHADER {
  DWORD dwHandle;
} D3DHAL_DP2VERTEXSHADER;

Anggota

dwHandle

Handel ke tampilan.

Keterangan

Semua driver tingkat DirectX 8.0 harus mendukung token D3DDP2OP_SETVERTEXSHADER karena dikirim meskipun driver tidak mendukung pemrosesan verteks yang dapat diprogram. Namun, dalam hal ini, handel shader selalu merupakan kode FVF yang menunjukkan pemrosesan fungsi tetap dari data vertex. Driver harus menggunakan kode FVF yang disimpan dalam anggota dwHandle sebagai format data vertex di stream zero. Driver yang mendukung pemrosesan vertex yang dapat diprogram harus memeriksa handel untuk menentukan apakah itu mengacu pada shader yang sebelumnya dibuat dengan D3DDP2OP_CREATEVERTEXSHADER atau kode FVF dan mengambil tindakan yang sesuai.

Shader pixel dan vertex bersifat ortogonal. Dengan demikian, jika kode FVF warisan dipilih sebagai shader vertex saat ini, ini tidak menyiratkan pemrosesan piksel warisan. Untuk mengatur ulang pemrosesan piksel ke mode subprogram, shader piksel saat ini juga harus diatur ke nol. Perawatan harus dilakukan di driver untuk hanya mengatur ulang status pemrosesan vertex ke mode fungsi tetap dan bukan status pemrosesan piksel ketika shader vertex diatur ke kode FVF.

Saat beralih dari pemrosesan vertex fungsi tetap ke pemrosesan vertex yang dapat diprogram, nilai status render warisan dan matriks harus dipertahankan. Jika dan ketika peralihan dari pemrosesan vertex fungsi yang dapat diprogram ke tetap terjadi (driver menerima D3DDP2OP_SETVERTEXSHADER dengan FVF sebagai handel shader), status yang dipertahankan harus dipulihkan.

Saat beralih antara shader yang dapat diprogram, setiap register konstanta yang memiliki nilai yang ditentukan dalam definisi shader tersebut harus diatur ke nilai tersebut. Nilai semua register konstanta lainnya harus tetap tidak berubah.

Untuk operasi D3DDP2OP_SETVERTEXSHADERDECL, runtime menentukan kode FVF warisan atau handel deklarasi DirectX 9.0 di anggota dwHandle . Runtime menunjukkan handel deklarasi DirectX 9.0 dengan mengatur bit 0 handel. Untuk operasi D3DDP2OP_SETVERTEXSHADERFUNC, runtime mengatur dwHandle ke nol untuk menunjukkan alur fungsi tetap.

Persyaratan

Persyaratan Nilai
Header d3dhal.h (termasuk D3dhal.h)

Lihat juga

D3DDP2OP_CREATEVERTEXSHADER

D3DDP2OP_DELETEVERTEXSHADER

D3DDP2OP_DELETEVERTEXSHADERDECL

D3DDP2OP_DELETEVERTEXSHADERFUNC

D3DDP2OP_SETSTREAMSOURCE

D3DDP2OP_SETSTREAMSOURCEUM

D3DDP2OP_SETVERTEXSHADER

D3DDP2OP_SETVERTEXSHADERDECL

D3DDP2OP_SETVERTEXSHADERFUNC

D3DHAL_DP2CREATEVERTEXSHADER

D3DHAL_DP2SETVERTEXSHADERCONST

D3dDrawPrimitives2