struktur D3DHAL_DP2STATESET (d3dhal.h)

Struktur D3DHAL_DP2STATESET digunakan untuk memberi tahu driver tentang operasi stateset untuk dilakukan.

Sintaks

typedef struct _D3DHAL_DP2STATESET {
  DWORD             dwOperation;
  DWORD             dwParam;
  D3DSTATEBLOCKTYPE sbType;
} D3DHAL_DP2STATESET;

Anggota

dwOperation

Menentukan operasi yang akan dilakukan. Nilai anggota ini bisa menjadi salah satu dari berikut ini:

Nilai Makna
D3DHAL_STATESETBEGIN Menentukan awal stateset yang dirujuk oleh dwParam.
D3DHAL_STATESETCAPTURE Menentukan bahwa pengambilan harus dilakukan. Ketika bendera ini ditentukan, driver harus mengambil rekam jepret dari status saat ini yang cocok dengan blok status yang direferensikan oleh handel yang diteruskan di dwParam. Artinya, hanya status yang ditentukan dalam blok status yang ditangkap. Lihat Manajemen Status Dipercepat untuk detail penting tentang penangkapan status.
D3DHAL_STATESETCREATE DirectX 8.0 dan versi yang lebih baru saja.
Pada tanda terima permintaan ini, driver harus membuat blok status dari jenis yang diberikan di bidang sbType. Informasi yang akan direkam untuk setiap jenis blok status dijelaskan di bawah ini.
D3DHAL_STATESETDELETE Menentukan bahwa stateset yang dirujuk oleh dwParam harus dihapus.
D3DHAL_STATESETEND Menentukan akhir stateset yang dirujuk oleh dwParam.
D3DHAL_STATESETEXECUTE Menentukan bahwa stateset yang dirujuk oleh dwParam harus dijalankan.

dwParam

Menentukan handle stateset yang mereferensikan blok status yang dimanipulasi dengan dwOperation saat ini.

sbType

Menentukan jenis blok status. Driver harus mengabaikan anggota ini kecuali menerapkan ekstensi status render, atau mengimplementasikan dukungan untuk perangkat murni (DirectX 8.0 dan versi yang lebih baru saja).

Jika driver menerapkan status render yang diperluas, yaitu, merender status di luar persediaan runtime Direct3D, driver dapat menggunakan sbType untuk menentukan jenis status render yang telah ditentukan sebelumnya yang digunakan. Dari informasi ini, driver dapat menentukan cara menambahkan blok status dengan tepat, untuk mendukung ekstensinya.

Anggota sbType , yang hanya valid untuk D3DHAL_STATESETBEGIN, D3DHAL_STATESETEND, dan D3DHAL_STATECREATE, menentukan jenis blok status dengan salah satu jenis enumerasi D3DSTATEBLOCKTYPE berikut. Untuk detail selengkapnya, lihat dokumentasi DirectX SDK.

D3DSBT_ALL

Memberi sinyal kepada driver untuk menangkap semua status.

Ketika diminta untuk menangkap semua status dalam mode perangkat murni, driver harus menangkap semua status dengan pengecualian status aliran puncak saat ini, status aliran indeks saat ini dan tekstur yang saat ini direalisasikan.

Status yang harus ditangkap adalah sebagai berikut; status render yang tercantum di bawah ini, status tahap tekstur yang tercantum di bawah ini, 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 pembuatan blok status, handel shader vertex saat ini, handel shader piksel saat ini, konstanta shader vertex saat ini dan konstanta shader piksel saat ini.

Status render untuk direkam adalah sebagai 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

Status tahap tekstur untuk direkam adalah sebagai 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

Memberi sinyal kepada driver untuk menangkap status piksel saja.

Saat menangkap status piksel dalam mode perangkat murni, status berikut harus diambil; status render terkait pemrosesan piksel tercantum di bawah ini, status tahap tekstur pemrosesan piksel yang tercantum di bawah ini, handel shader piksel saat ini dan konstanta shader piksel saat ini.

Status render untuk direkam adalah sebagai 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

Status tahap tekstur untuk direkam adalah sebagai 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_VERTEXSTATE

Memberi sinyal kepada driver untuk menangkap status puncak saja.

Saat menangkap status puncak dalam mode perangkat murni, status berikut harus diambil; status render terkait pemrosesan puncak yang tercantum di bawah ini, status tahap tekstur pemrosesan puncak yang tercantum di bawah ini, semua lampu yang telah digunakan sebelum pembuatan blok status, handel shader vertex saat ini dan konstanta shader vertex saat ini.

Status render untuk direkam adalah sebagai berikut:

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

Status tahap tekstur untuk direkam adalah sebagai berikut:

D3DTSS_TEXCOORDINDEX
D3DTSS_TEXTURETRANSFORMFLAGS

NULL

Tidak ada grup status yang ditentukan sebelumnya.

Keterangan

Lihat Manajemen Status Dipercepat dalam Panduan Desain Grafis untuk informasi selengkapnya tentang penggunaan struktur ini dalam manajemen blok status.

Persyaratan

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