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