struktur D3DDDIARG_STATESET (d3dumddi.h)

Struktur D3DDDIARG_STATESET menjelaskan cara mengatur blok status.

Sintaks

typedef struct _D3DDDIARG_STATESET {
  [in]     UINT              Operation;
  [in]     D3DSTATEBLOCKTYPE StateBlockType;
  [in/out] HANDLE            hStateSet;
} D3DDDIARG_STATESET;

Anggota

[in] Operation

Operasi yang akan dilakukan, yang bisa menjadi salah satu nilai berikut.

Nilai Makna
D3DHAL_STATESETBEGIN Mulai blok status yang direferensikan oleh handel di anggota hStateSet.
D3DHAL_STATESETCAPTURE Lakukan pengambilan. Ketika bendera ini ditentukan, driver harus mengambil rekam jepret dari status saat ini yang cocok dengan blok status yang direferensikan oleh handel di hStateSet. Artinya, hanya status yang ditentukan dalam blok status yang ditangkap.
D3DHAL_STATESETCREATE Buat blok status jenis yang ditentukan di anggota StateBlockType. Informasi yang akan direkam untuk setiap jenis blok status dijelaskan dalam StateBlockType.
D3DHAL_STATESETDELETE Hapus blok status yang dirujuk oleh handel di hStateSet.
D3DHAL_STATESETEND Akhiri blok status yang dirujuk oleh handel di hStateSet.
D3DHAL_STATESETEXECUTE Jalankan blok status yang dirujuk oleh handel di hStateSet.

[in] StateBlockType

Nilai D3DSTATEBLOCKTYPE-ketik yang menunjukkan jenis status yang harus direkam driver. Anggota ini bisa menjadi salah satu nilai berikut.

Nilai Makna
D3DSBT_ALL Driver harus menangkap semua status.
Ketika diminta untuk mengambil semua status dalam mode perangkat murni, driver harus menangkap semua status dengan pengecualian status aliran vertex saat ini, status aliran indeks saat ini, dan tekstur yang saat ini direalisasikan.
Driver harus menangkap (yaitu, merekam) viewport, semua transformasi dunia, transformasi tampilan, transformasi proyeksi, transformasi tekstur untuk semua tahap tekstur, semua bidang klip pengguna, bahan saat ini, semua lampu yang telah digunakan sebelum blok status dibuat, handel vertex-shader saat ini, handel pixel-shader saat ini, konstanta vertex-shader saat ini, dan konstanta pixel-shader saat ini. Selain itu, driver harus menangkap status tahap render dan tekstur berikut: D3DRENDERSTATE_SPECULARENABLE D3DRENDERSTATE_ZENABLE D3DRENDERSTATE_FILLMODE D3DRENDERSTATE_SHADEMODE D3DRENDERSTATE_LINEPATTERN D3DRENDERSTATE_ZWRITEENABLE D3DRENDERSTATE_ALPHATESTENABLE D3DRENDERSTATE_LASTPIXEL D3DRENDERSTATE_SRCBLEND D3DRENDERSTATE_DESTBLEND D3DRENDERSTATE_CULLMODE D3DRENDERSTATE_ZFUNC D3DRENDERSTATE_ALPHAREF D3DRENDERSTATE_ALPHAFUNC D3DRENDERSTATE_DITHERENABLE D3DRENDERSTATE_FOGENABLE D3DRENDERSTATE_STIPPLEDALPHA D3DRENDERSTATE_FOGCOLOR D3DRENDERSTATE_FOGTABLEMODE D3DRENDERSTATE_FOGSTART D3DRENDERSTATE_FOGEND D3DRENDERSTATE_FOGDENSITY D3DRENDERSTATE_EDGEANTIALIAS D3DRENDERSTATE_ALPHABLENDENABLE D3DRENDERSTATE_ZBIAS D3DRENDERSTATE_RANGEFOGENABLE D3DRENDERSTATE_STENCILENABLE D3DRENDERSTATE_STENCILFAIL D3DRENDERSTATE_STENCILZFAIL D3DRENDERSTATE_STENCILPASS D3DRENDERSTATE_STENCILFUNC D3DRENDERSTATE_STENCILREF D3DRENDERSTATE_STENCILMASK D3DRENDERSTATE_STENCILWRITEMASK D3DRENDERSTATE_TEXTUREFACTOR D3DRENDERSTATE_WRAP0 D3DRENDERSTATE_WRAP1 D3DRENDERSTATE_WRAP2 D3DRENDERSTATE_WRAP3 D3DRENDERSTATE_WRAP4 D3DRENDERSTATE_WRAP5 D3DRENDERSTATE_WRAP6 D3DRENDERSTATE_WRAP7 D3DRENDERSTATE_AMBIENT D3DRENDERSTATE_COLORVERTEX D3DRENDERSTATE_FOGVERTEXMODE D3DRENDERSTATE_CLIPPING D3DRENDERSTATE_LIGHTING D3DRENDERSTATE_NORMALIZENORMALS D3DRENDERSTATE_LOCALVIEWER D3DRENDERSTATE_ EMISSIVEMATERIALSOURCE D3DRENDERSTATE_AMBIENTMATERIALSOURCE D3DRENDERSTATE_DIFFUSEMATERIALSOURCE D3DRENDERSTATE_SPECULARMATERIALSOURCE D3DRENDERSTATE_VERTEXBLEND D3DRENDERSTATE_CLIPPLANEENABLE D3DRS_SOFTWAREVERTEXPROCESSING D3DRS_POINTSIZE D3DRS_POINTSIZE_MIN D3DRS_POINTSPRITEENABLE D3DRS_POINTSCALEENABLE D3DRS_POINTSCALE_A D3DRS_POINTSCALE_B D3DRS_POINTSCALE_C D3DRS_MULTISAMPLEANTIALIAS D3DRS_MULTISAMPLEMASK D3DRS_PATCHEDGESTYLE D3DRS_PATCHSEGMENTS D3DRS_ POINTSIZE_MAX D3DRS_INDEXEDVERTEXBLENDENABLE D3DRS_COLORWRITEENABLE D3DRS_TWEENFACTOR D3DRS_BLENDOP
Driver harus merekam status tahap tekstur berikut:
D3DTSS_COLOROP D3DTSS_COLORARG1 D3DTSS_COLORARG2 D3DTSS_ALPHAOP D3DTSS_ALPHAARG1 D3DTSS_ALPHAARG2 D3DTSS_BUMPENVMAT00 D3DTSS_BUMPENVMAT01 D3DTSS_BUMPENVMAT10 D3DTSS_BUMPENVMAT11 D3DTSS_TEXCOORDINDEX D3DTSS_ADDRESSU D3DTSS_ADDRESSV D3DTSS_BORDERCOLOR D3DTSS_MAGFILTER D3DTSS_MINFILTER D3DTSS_MIPFILTER D3DTSS_MIPMAPLODBIAS D3DTSS_MAXMIPLEVEL D3DTSS_MAXANISOTROPY D3DTSS_BUMPENVLSCALE D3DTSS_BUMPENVLOFFSET D3DTSS_TEXTURETRANSFORMFLAGS D3DTSS_ADDRESSW D3DTSS_COLORARG0 D3DTSS_ ALPHAARG0 D3DTSS_RESULTARG
D3DSBT_PIXELSTATE Driver hanya boleh mengambil status piksel.
Saat menangkap status piksel dalam mode perangkat murni, driver harus mengambil (yaitu, merekam) handel shader piksel saat ini, konstanta shader piksel saat ini, dan status render terkait pemrosesan piksel dan status tahap tekstur berikut:
D3DRENDERSTATE_ZENABLE D3DRENDERSTATE_FILLMODE D3DRENDERSTATE_SHADEMODE D3DRENDERSTATE_LINEPATTERN D3DRENDERSTATE_ZWRITEENABLE D3DRENDERSTATE_ALPHATESTENABLE D3DRENDERSTATE_LASTPIXEL D3DRENDERSTATE_SRCBLEND D3DRENDERSTATE_DESTBLEND D3DRENDERSTATE_ZFUNC D3DRENDERSTATE_ALPHAREF D3DRENDERSTATE_ALPHAFUNC D3DRENDERSTATE_DITHERENABLE D3DRENDERSTATE_STIPPLEDALPHA D3DRENDERSTATE_FOGSTART D3DRENDERSTATE_FOGEND D3DRENDERSTATE_FOGDENSITY D3DRENDERSTATE_EDGEANTIALIAS D3DRENDERSTATE_ALPHABLENDENABLE D3DRENDERSTATE_ZBIAS D3DRENDERSTATE_STENCILENABLE D3DRENDERSTATE_STENCILFAIL D3DRENDERSTATE_STENCILZFAIL D3DRENDERSTATE_STENCILPASS D3DRENDERSTATE_STENCILFUNC D3DRENDERSTATE_STENCILREF D3DRENDERSTATE_STENCILMASK D3DRENDERSTATE_STENCILWRITEMASK D3DRENDERSTATE_TEXTUREFACTOR D3DRENDERSTATE_WRAP0 D3DRENDERSTATE_WRAP1 D3DRENDERSTATE_WRAP2 D3DRENDERSTATE_WRAP3 D3DRENDERSTATE_WRAP4 D3DRENDERSTATE_WRAP5 D3DRENDERSTATE_WRAP6 D3DRENDERSTATE_ WRAP7 D3DRS_COLORWRITEENABLE D3DRS_BLENDOP D3DTSS_COLOROP D3DTSS_COLORARG1 D3DTSS_COLORARG2 D3DTSS_ALPHAOP D3DTSS_ALPHAARG1 D3DTSS_ALPHAARG2 D3DTSS_BUMPENVMAT00 D3DTSS_BUMPENVMAT01 D3DTSS_BUMPENVMAT10 D3DTSS_BUMPENVMAT11 D3DTSS_TEXCOORDINDEX D3DTSS_ADDRESSU D3DTSS_ADDRESSV D3DTSS_BORDERCOLOR D3DTSS_MAGFILTER D3DTSS_MINFILTER D3DTSS_MIPFILTER D3DTSS_MIPMAPLODBIAS D3DTSS_MAXMIPLEVEL D3DTSS_MAXANISOTROPY D3DTSS_BUMPENVLSCALE D3DTSS_BUMPENVLOFFSET D3DTSS_ TEXTURETRANSFORMFLAGS D3DTSS_ADDRESSW D3DTSS_COLORARG0 D3DTSS_ALPHAARG0 D3DTSS_RESULTARG
D3DSBT_VERTEXSTATE Driver hanya boleh menangkap status puncak.
Saat menangkap status vertex dalam mode perangkat murni, driver harus menangkap (merekam) semua lampu yang telah digunakan sebelum blok status dibuat, handel shader vertex saat ini, konstanta shader vertex saat ini, dan status render terkait pemrosesan verteks berikut dan status tahap tekstur:
D3DRENDERSTATE_SHADEMODE D3DRENDERSTATE_SPECULARENABLE D3DRENDERSTATE_CULLMODE D3DRENDERSTATE_FOGENABLE D3DRENDERSTATE_FOGCOLOR D3DRENDERSTATE_FOGTABLEMODE D3DRENDERSTATE_FOGSTART D3DRENDERSTATE_FOGEND D3DRENDERSTATE_FOGDENSITY D3DRENDERSTATE_RANGEFOGENABLE D3DRENDERSTATE_AMBIENT D3DRENDERSTATE_COLORVERTEX D3DRENDERSTATE_FOGVERTEXMODE D3DRENDERSTATE_CLIPPING D3DRENDERSTATE_LIGHTING D3DRENDERSTATE_NORMALIZENORMALS D3DRENDERSTATE_LOCALVIEWER D3DRENDERSTATE_ EMISSIVEMATERIALSOURCE D3DRENDERSTATE_AMBIENTMATERIALSOURCE D3DRENDERSTATE_DIFFUSEMATERIALSOURCE D3DRENDERSTATE_SPECULARMATERIALSOURCE D3DRENDERSTATE_VERTEXBLEND D3DRENDERSTATE_CLIPPLANEENABLE D3DRS_SOFTWAREVERTEXPROCESSING D3DRS_POINTSIZE D3DRS_POINTSIZE_MIN D3DRS_POINTSPRITEENABLE D3DRS_POINTSCALEENABLE D3DRS_POINTSCALE_A D3DRS_POINTSCALE_B D3DRS_POINTSCALE_C D3DRS_MULTISAMPLEANTIALIAS D3DRS_MULTISAMPLEMASK D3DRS_PATCHEDGESTYLE D3DRS_PATCHSEGMENTS D3DRS_ POINTSIZE_MAX D3DRS_INDEXEDVERTEXBLENDENABLE D3DRS_TWEENFACTOR D3DTSS_TEXCOORDINDEX D3DTSS_TEXTURETRANSFORMFLAGS
NULL Tidak ada grup status yang ditentukan sebelumnya.

[in/out] hStateSet

Handel ke blok status yang dimanipulasi oleh operasi yang ditentukan dalam anggota Operasi .

Handel blok status diteruskan dalam panggilan ke fungsi StateSet driver tampilan mode pengguna saat Operasi diatur ke D3DHAL_STATESETEXECUTE.

Fungsi StateSet mengembalikan handel blok status saat Operasi diatur ke D3DHAL_STATESETBEGIN dan D3DHAL_STATESETCREATE.

Keterangan

Jika driver tampilan mode pengguna menerapkan status render yang diperluas (yaitu, merender status di luar yang disediakan runtime Microsoft Direct3D), driver menggunakan anggota StateBlockType untuk menentukan jenis status render yang telah ditentukan sebelumnya yang sedang digunakan. Dari informasi ini, driver dapat menentukan cara menambahkan blok status dengan tepat untuk mendukung ekstensinya.

Anggota StateBlockType hanya berlaku untuk operasi D3DHAL_STATESETBEGIN, D3DHAL_STATESETEND, dan D3DHAL_STATECREATE. Untuk informasi selengkapnya tentang jenis enumerasi D3DSTATEBLOCKTYPE, lihat dokumentasi Microsoft Windows SDK.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows.
Header d3dumddi.h (termasuk D3dumddi.h)

Lihat juga

StateSet