enumerasi D3DRENDERSTATETYPE (d3d9types.h)

Jenis D3DRENDERSTATETYPE yang dijumlahkan mencantumkan berbagai atribut, atau merender status. Enumerator D3DRENDERSTATETYPE yang digunakan secara eksklusif oleh driver dapat menentukan informasi penyajian atau atribut tekstur. Status render berikut digunakan oleh driver tampilan:

Sintaks

typedef enum _D3DRENDERSTATETYPE {
  D3DRS_ZENABLE,
  D3DRS_FILLMODE,
  D3DRS_SHADEMODE,
  D3DRS_ZWRITEENABLE,
  D3DRS_ALPHATESTENABLE,
  D3DRS_LASTPIXEL,
  D3DRS_SRCBLEND,
  D3DRS_DESTBLEND,
  D3DRS_CULLMODE,
  D3DRS_ZFUNC,
  D3DRS_ALPHAREF,
  D3DRS_ALPHAFUNC,
  D3DRS_DITHERENABLE,
  D3DRS_ALPHABLENDENABLE,
  D3DRS_FOGENABLE,
  D3DRS_SPECULARENABLE,
  D3DRS_FOGCOLOR,
  D3DRS_FOGTABLEMODE,
  D3DRS_FOGSTART,
  D3DRS_FOGEND,
  D3DRS_FOGDENSITY,
  D3DRS_RANGEFOGENABLE,
  D3DRS_STENCILENABLE,
  D3DRS_STENCILFAIL,
  D3DRS_STENCILZFAIL,
  D3DRS_STENCILPASS,
  D3DRS_STENCILFUNC,
  D3DRS_STENCILREF,
  D3DRS_STENCILMASK,
  D3DRS_STENCILWRITEMASK,
  D3DRS_TEXTUREFACTOR,
  D3DRS_WRAP0,
  D3DRS_WRAP1,
  D3DRS_WRAP2,
  D3DRS_WRAP3,
  D3DRS_WRAP4,
  D3DRS_WRAP5,
  D3DRS_WRAP6,
  D3DRS_WRAP7,
  D3DRS_CLIPPING,
  D3DRS_LIGHTING,
  D3DRS_AMBIENT,
  D3DRS_FOGVERTEXMODE,
  D3DRS_COLORVERTEX,
  D3DRS_LOCALVIEWER,
  D3DRS_NORMALIZENORMALS,
  D3DRS_DIFFUSEMATERIALSOURCE,
  D3DRS_SPECULARMATERIALSOURCE,
  D3DRS_AMBIENTMATERIALSOURCE,
  D3DRS_EMISSIVEMATERIALSOURCE,
  D3DRS_VERTEXBLEND,
  D3DRS_CLIPPLANEENABLE,
  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_DEBUGMONITORTOKEN,
  D3DRS_POINTSIZE_MAX,
  D3DRS_INDEXEDVERTEXBLENDENABLE,
  D3DRS_COLORWRITEENABLE,
  D3DRS_TWEENFACTOR,
  D3DRS_BLENDOP,
  D3DRS_POSITIONDEGREE,
  D3DRS_NORMALDEGREE,
  D3DRS_SCISSORTESTENABLE,
  D3DRS_SLOPESCALEDEPTHBIAS,
  D3DRS_ANTIALIASEDLINEENABLE,
  D3DRS_MINTESSELLATIONLEVEL,
  D3DRS_MAXTESSELLATIONLEVEL,
  D3DRS_ADAPTIVETESS_X,
  D3DRS_ADAPTIVETESS_Y,
  D3DRS_ADAPTIVETESS_Z,
  D3DRS_ADAPTIVETESS_W,
  D3DRS_ENABLEADAPTIVETESSELLATION,
  D3DRS_TWOSIDEDSTENCILMODE,
  D3DRS_CCW_STENCILFAIL,
  D3DRS_CCW_STENCILZFAIL,
  D3DRS_CCW_STENCILPASS,
  D3DRS_CCW_STENCILFUNC,
  D3DRS_COLORWRITEENABLE1,
  D3DRS_COLORWRITEENABLE2,
  D3DRS_COLORWRITEENABLE3,
  D3DRS_BLENDFACTOR,
  D3DRS_SRGBWRITEENABLE,
  D3DRS_DEPTHBIAS,
  D3DRS_WRAP8,
  D3DRS_WRAP9,
  D3DRS_WRAP10,
  D3DRS_WRAP11,
  D3DRS_WRAP12,
  D3DRS_WRAP13,
  D3DRS_WRAP14,
  D3DRS_WRAP15,
  D3DRS_SEPARATEALPHABLENDENABLE,
  D3DRS_SRCBLENDALPHA,
  D3DRS_DESTBLENDALPHA,
  D3DRS_BLENDOPALPHA,
  D3DRS_FORCE_DWORD
} D3DRENDERSTATETYPE;

Konstanta

 
D3DRS_ZENABLE
Jenis enumerasi D3DZBUFFERTYPE yang mewakili status buffering kedalaman.
D3DRS_FILLMODE
Jenis enumerasi D3DFILLMODE .
D3DRS_SHADEMODE
Jenis enumerasi D3DSHADEMODE .
D3DRS_ZWRITEENABLE
TRUE untuk mengaktifkan aplikasi untuk menulis ke buffer kedalaman. Nilai defaultnya adalah TRUE. Anggota ini memungkinkan aplikasi untuk mencegah sistem memperbarui buffer kedalaman dengan nilai kedalaman baru. Jika FALSE, perbandingan kedalaman masih dibuat sesuai dengan status render D3DRS_ZFUNC, dengan asumsi bahwa buffering kedalaman sedang berlangsung, tetapi nilai kedalaman tidak ditulis ke buffer.
D3DRS_ALPHATESTENABLE
TRUE untuk mengaktifkan pengujian alfa per piksel. Jika pengujian lolos, piksel diproses oleh buffer bingkai. Jika tidak, semua pemrosesan buffer bingkai dilewati untuk piksel.
D3DRS_LASTPIXEL
Nilai defaultnya adalah TRUE, yang memungkinkan gambar piksel terakhir dalam baris. Untuk mencegah gambar piksel terakhir, atur nilai ini ke FALSE.
D3DRS_SRCBLEND
Jenis enumerasi D3DBLEND .
D3DRS_DESTBLEND
Jenis enumerasi D3DBLEND.
D3DRS_CULLMODE
Jenis enumerasi D3DCULL yang menentukan bagaimana segitiga yang menghadap ke belakang dimusnahkan, jika sama sekali.
D3DRS_ZFUNC
Jenis enumerasi D3DCMPFUNC yang memungkinkan aplikasi menerima atau menolak piksel, berdasarkan jaraknya dari kamera.

Nilai kedalaman piksel dibandingkan dengan nilai buffer kedalaman. Jika nilai kedalaman piksel melewati fungsi perbandingan, piksel akan ditulis.

Nilai kedalaman ditulis ke buffer kedalaman hanya jika status render TRUE.
D3DRS_ALPHAREF
Nilai yang menentukan nilai alfa referensi di mana piksel diuji saat pengujian alfa diaktifkan. Ini adalah nilai 8-bit yang ditempatkan dalam 8 bit rendah dari nilai status render DWORD. Nilai dapat berkisar dari 0x00000000 hingga 0x000000FF. Nilai default adalah 0.
D3DRS_ALPHAFUNC
Jenis enumerasi D3DCMPFUNC yang memungkinkan aplikasi menerima atau menolak piksel, berdasarkan nilai alfanya.
D3DRS_DITHERENABLE
TRUE untuk mengaktifkan dithering. Nilai defaultnya adalah FALSE.
D3DRS_ALPHABLENDENABLE
TRUE untuk mengaktifkan transparansi alpha-blended. Nilai defaultnya adalah FALSE.

Jenis penpaduan alfa ditentukan oleh status render D3DRS_SRCBLEND dan D3DRS_DESTBLEND.
D3DRS_FOGENABLE
TRUE untuk mengaktifkan penpaduan kabut. Nilai defaultnya adalah FALSE.
D3DRS_SPECULARENABLE
TRUE untuk mengaktifkan sorotan spekular. Nilai defaultnya adalah FALSE.
Sorotan spekular dihitung seolah-olah setiap puncak dalam objek yang menyala berada di asal objek. Ini memberikan hasil yang diharapkan selama objek dimodelkan di sekitar asal dan jarak dari cahaya ke objek relatif besar. Dalam kasus lain, hasilnya sebagai tidak terdefinisi.

Ketika anggota ini diatur ke TRUE, warna spekular ditambahkan ke warna dasar setelah tekstur bertingkat tetapi sebelum penpaduan alfa.
D3DRS_FOGCOLOR
Struktur D3DCOLORVALUE .
D3DRS_FOGTABLEMODE
Jenis D3DFOGMODE yang dijumlahkan yang mewakili rumus kabut yang akan digunakan untuk kabut piksel.
D3DRS_FOGSTART
Kedalaman di mana efek kabut piksel atau puncak dimulai untuk mode kabut linier. Nilai defaultnya adalah 0,0f. Kedalaman ditentukan di ruang dunia untuk kabut puncak dan ruang perangkat [0.0, 1.0] atau ruang dunia untuk kabut piksel. Untuk kabut piksel, nilai-nilai ini berada di ruang perangkat ketika sistem menggunakan z untuk perhitungan kabut dan ruang dunia-dunia ketika sistem menggunakan kabut relatif mata (w-fog).
D3DRS_FOGEND
Kedalaman di mana efek kabut piksel atau puncak berakhir untuk mode kabut linier. Nilai defaultnya adalah 1,0f. Kedalaman ditentukan di ruang dunia untuk kabut puncak dan ruang perangkat [0.0, 1.0] atau ruang dunia untuk kabut piksel. Untuk kabut piksel, nilai-nilai ini berada di ruang perangkat ketika sistem menggunakan z untuk perhitungan kabut dan di ruang dunia ketika sistem menggunakan kabut relatif mata (w-fog).
D3DRS_FOGDENSITY
Kepadatan kabut untuk kabut piksel atau puncak yang digunakan dalam mode kabut eksponensial (D3DFOG_EXP dan D3DFOG_EXP2). Nilai kepadatan yang valid berkisar antara 0,0 hingga 1,0.
D3DRS_RANGEFOGENABLE
TRUE untuk mengaktifkan kabut vertex berbasis rentang. Nilai defaultnya adalah FALSE, dalam hal ini sistem menggunakan kabut berbasis kedalaman. Dalam kabut berbasis rentang, jarak objek dari penampil digunakan untuk menghitung efek kabut, bukan kedalaman objek (yaitu, koordinat z) dalam adegan. Dalam kabut berbasis rentang, semua metode kabut berfungsi seperti biasa, kecuali bahwa mereka menggunakan rentang alih-alih kedalaman dalam komputasi.

Rentang adalah faktor yang benar untuk digunakan untuk komputasi kabut, tetapi kedalaman umumnya digunakan sebagai gantinya karena rentang memakan waktu untuk komputasi dan kedalaman umumnya sudah tersedia. Menggunakan kedalaman untuk menghitung kabut memiliki efek yang tidak diinginkan dari memiliki fogginess objek periferal berubah saat mata penonton bergerak - dalam hal ini, kedalaman berubah dan rentang tetap konstan.

Karena saat ini tidak ada perangkat keras yang mendukung kabut berbasis rentang per piksel, koreksi rentang hanya ditawarkan untuk kabut vertex.
D3DRS_STENCILENABLE
TRUE untuk mengaktifkan stensil, atau FALSE untuk menonaktifkan stensil. Nilai defaultnya adalah FALSE.
D3DRS_STENCILFAIL
Jenis enumerasi D3DSTENCILOP yang menentukan operasi stensil untuk dilakukan jika pengujian stensil gagal. Nilai defaultnya adalah D3DSTENCILOP_KEEP.
D3DRS_STENCILZFAIL
Jenis enumerasi D3DSTENCILOP yang menentukan operasi stensil untuk dilakukan jika uji stensil lulus dan uji kedalaman (z-test) gagal.
D3DRS_STENCILPASS
Jenis enumerasi D3DSTENCILOP yang menentukan operasi stensil untuk dilakukan jika pengujian stensil dan kedalaman (z) lulus.
D3DRS_STENCILFUNC
Fungsi perbandingan digunakan untuk membandingkan nilai referensi dengan entri buffer stensil. Perbandingan ini hanya berlaku untuk bit dalam nilai referensi dan entri buffer stensil yang diatur dalam masker stensil (diatur oleh status render D3DRS_STENCILMASK). Jika TRUE, uji stensil lolos.
D3DRS_STENCILREF
Nilai referensi int untuk pengujian stensil. Nilai default adalah 0.
D3DRS_STENCILMASK
Masker diterapkan ke nilai referensi dan setiap entri buffer stensil untuk menentukan bit yang signifikan untuk pengujian stensil. Masker default adalah 0xFFFFFFFF.
D3DRS_STENCILWRITEMASK
Tulis masker yang diterapkan ke nilai yang ditulis ke dalam buffer stensil. Masker default adalah 0xFFFFFFFF.
D3DRS_TEXTUREFACTOR
Warna yang digunakan untuk perpaduan multitekstur dengan argumen D3DTA_TFACTOR tekstur-blending atau operasi D3DTOP_BLENDFACTORALPHA texture-blending.
D3DRS_WRAP0
Perilaku pembungkus tekstur untuk beberapa set koordinat tekstur. Nilai yang valid untuk status render ini bisa berupa kombinasi D3DWRAPCOORD_0 (atau D3DWRAP_U), D3DWRAPCOORD_1 (atau D3DWRAP_V), D3DWRAPCOORD_2 (atau D3DWRAP_W), dan bendera D3DWRAPCOORD_3. Ini menyebabkan sistem membungkus ke arah dimensi pertama, kedua, ketiga, dan keempat, kadang-kadang disebut sebagai arah s, t, r, dan q, untuk tekstur tertentu. Nilai default untuk status render ini adalah 0 (pembungkusan dinonaktifkan di semua arah).
D3DRS_WRAP1
Lihat D3DRS_WRAP0.
D3DRS_WRAP2
Lihat D3DRS_WRAP0.
D3DRS_WRAP3
Lihat D3DRS_WRAP0.
D3DRS_WRAP4
Lihat D3DRS_WRAP0.
D3DRS_WRAP5
Lihat D3DRS_WRAP0.
D3DRS_WRAP6
Lihat D3DRS_WRAP0.
D3DRS_WRAP7
Lihat D3DRS_WRAP0.
D3DRS_CLIPPING
TRUE untuk mengaktifkan kliping primitif oleh Direct3D, atau FALSE untuk menonaktifkannya. Nilai defaultnya adalah TRUE.
D3DRS_LIGHTING
TRUE untuk mengaktifkan pencahayaan Direct3D, atau FALSE untuk menonaktifkannya. Nilai defaultnya adalah TRUE. Hanya simpul yang menyertakan puncak normal yang menyala dengan benar; puncak yang tidak mengandung normal menggunakan produk titik 0 di semua perhitungan pencahayaan.
D3DRS_AMBIENT
Warna cahaya sekitar.
D3DRS_FOGVERTEXMODE
Rumus kabut yang akan digunakan untuk kabut vertex.
D3DRS_COLORVERTEX
TRUE untuk mengaktifkan warna per vertex atau FALSE untuk menonaktifkannya. Nilai defaultnya adalah TRUE. Mengaktifkan warna per puncak memungkinkan sistem untuk menyertakan warna yang ditentukan untuk sudut individual dalam perhitungan pencahayaannya.
D3DRS_LOCALVIEWER
TRUE untuk mengaktifkan sorotan spekular relatif kamera, atau FALSE untuk menggunakan sorotan spekular ortogonal. Nilai defaultnya adalah TRUE. Aplikasi yang menggunakan proyeksi ortogonal harus menentukan FALSE.
D3DRS_NORMALIZENORMALS
TRUE untuk mengaktifkan normalisasi otomatis normal vertex, atau FALSE untuk menonaktifkannya. Nilai defaultnya adalah FALSE. Mengaktifkan fitur ini menyebabkan sistem menormalkan puncak normal untuk simpul setelah mengubahnya ke ruang kamera, yang dapat memakan waktu secara komputasi.
D3DRS_DIFFUSEMATERIALSOURCE
Sumber warna difus untuk perhitungan pencahayaan.
D3DRS_SPECULARMATERIALSOURCE
Sumber warna spekular untuk perhitungan pencahayaan.
D3DRS_AMBIENTMATERIALSOURCE
Sumber warna sekitar untuk perhitungan pencahayaan.
D3DRS_EMISSIVEMATERIALSOURCE
Sumber warna emissif untuk perhitungan pencahayaan.
D3DRS_VERTEXBLEND
Jumlah matriks yang akan digunakan untuk melakukan perpaduan geometri, jika ada.
D3DRS_CLIPPLANEENABLE
Mengaktifkan atau menonaktifkan bidang kliping yang ditentukan pengguna. Nilai yang valid adalah DWORD apa pun di mana status setiap bit (diatur atau tidak diatur) mengalihkan status aktivasi bidang kliping yang ditentukan pengguna yang sesuai. Bit paling tidak signifikan (bit 0) mengontrol bidang kliping pertama pada indeks 0, dan bit berikutnya mengontrol aktivasi bidang kliping pada indeks yang lebih tinggi. Jika sedikit diatur, sistem menerapkan bidang kliping yang sesuai selama penyajian adegan. Nilai default adalah 0.
D3DRS_POINTSIZE
Nilai float yang menentukan ukuran yang akan digunakan untuk komputasi ukuran titik dalam kasus di mana ukuran titik tidak ditentukan untuk setiap puncak. Nilai ini tidak digunakan ketika puncak berisi ukuran titik. Nilai ini ada di unit ruang layar jika D3DRS_POINTSCALEENABLE FALSE; jika tidak, nilai ini ada di unit ruang dunia. Nilai default adalah nilai yang dikembalikan driver. Jika driver mengembalikan 0 atau 1, nilai defaultnya adalah 64, yang memungkinkan emulasi ukuran titik perangkat lunak.
D3DRS_POINTSIZE_MIN
Nilai float yang menentukan ukuran minimum primitif titik. Primitif titik dijepit ke ukuran ini selama penyajian. Mengatur ini ke nilai yang lebih kecil dari 1,0 menghasilkan titik yang menurun ketika titik tidak mencakup pusat piksel dan antialias dinonaktifkan atau dirender dengan intensitas yang berkurang saat antialias diaktifkan. Nilai defaultnya adalah 1,0f. Rentang untuk nilai ini lebih besar dari atau sama dengan 0,0f.
D3DRS_POINTSPRITEENABLE
Ketika TRUE, koordinat tekstur primitif titik diatur sehingga tekstur lengkap dipetakan pada setiap titik. Ketika FALSE, koordinat tekstur puncak digunakan untuk seluruh titik. Nilai defaultnya adalah FALSE. Anda dapat mencapai titik piksel tunggal gaya DirectX 7 dengan mengatur D3DRS_POINTSCALEENABLE ke FALSE dan D3DRS_POINTSIZE ke 1,0, yang merupakan nilai default.
D3DRS_POINTSCALEENABLE
Nilai bool yang mengontrol komputasi ukuran untuk titik primitif. Ketika TRUE, ukuran titik ditafsirkan sebagai nilai ruang kamera dan diskalakan oleh fungsi jarak dan frustum untuk melihat penskalaan sumbu y untuk menghitung ukuran titik ruang layar akhir. Ketika FALSE, ukuran titik ditafsirkan sebagai ruang layar dan digunakan secara langsung. Nilai defaultnya adalah FALSE.
D3DRS_POINTSCALE_A
Nilai float yang mengontrol redaman ukuran berbasis jarak untuk primitif titik. Aktif hanya saat D3DRS_POINTSCALEENABLE TRUE. Nilai defaultnya adalah 1,0f. Rentang untuk nilai ini lebih besar dari atau sama dengan 0,0f.
D3DRS_POINTSCALE_B
Nilai float yang mengontrol redaman ukuran berbasis jarak untuk primitif titik. Aktif hanya saat D3DRS_POINTSCALEENABLE TRUE. Nilai defaultnya adalah 0,0f. Rentang untuk nilai ini lebih besar dari atau sama dengan 0,0f.
D3DRS_POINTSCALE_C
Nilai float yang mengontrol redaman ukuran berbasis jarak untuk primitif titik. Aktif hanya saat D3DRS_POINTSCALEENABLE TRUE. Nilai defaultnya adalah 0,0f. Rentang untuk nilai ini lebih besar dari atau sama dengan 0,0f.
D3DRS_MULTISAMPLEANTIALIAS
Nilai bool yang menentukan bagaimana sampel individual dihitung saat menggunakan buffer target render multisample. Ketika diatur ke TRUE, beberapa sampel dihitung sehingga antialias adegan penuh dilakukan dengan pengambilan sampel pada posisi sampel yang berbeda untuk setiap beberapa sampel. Saat diatur ke FALSE, beberapa sampel semuanya ditulis dengan nilai sampel yang sama, diambil sampelnya di pusat piksel, yang memungkinkan penyajian yang tidak diantisipasi ke buffer multisample. Status render ini tidak berpengaruh saat merender ke buffer sampel tunggal. Nilai defaultnya adalah TRUE.
D3DRS_MULTISAMPLEMASK
Setiap bit dalam masker ini, dimulai pada bit paling tidak signifikan (LSB), mengontrol modifikasi salah satu sampel dalam target render multisample. Dengan demikian, untuk target render 8 sampel, byte rendah berisi delapan penulisan memungkinkan untuk masing-masing dari delapan sampel. Status render ini tidak berpengaruh saat merender ke buffer sampel tunggal. Nilai defaultnya adalah 0xFFFFFFFF.

Status render ini memungkinkan penggunaan buffer multisample sebagai buffer akumulasi, melakukan rendering multipass geometri di mana setiap pass memperbarui subset sampel.
Jika ada sampel n multisampel dan k diaktifkan, intensitas yang dihasilkan dari gambar yang dirender harus k/n. Setiap komponen RGB dari setiap piksel diperhitungkan oleh k/n.
D3DRS_PATCHEDGESTYLE
Mengatur apakah tepi patch akan menggunakan tessellation gaya float.
D3DRS_DEBUGMONITORTOKEN
Atur hanya untuk penelusuran kesalahan monitor.
D3DRS_POINTSIZE_MAX
Nilai float yang menentukan ukuran maksimum sprite titik mana yang akan dijepit. Nilai harus kurang dari atau sama dengan anggota MaxPointSize D3DCAPS9 dan lebih besar dari atau sama dengan D3DRS_POINTSIZE_MIN. Nilai defaultnya adalah 64,0.
D3DRS_INDEXEDVERTEXBLENDENABLE
Nilai bool yang mengaktifkan atau menonaktifkan campuran vertex terindeks. Nilai defaultnya adalah FALSE. Ketika diatur ke TRUE, penpaduan puncak terindeks diaktifkan. Ketika diatur ke FALSE, penpaduan vertex terindeks dinonaktifkan. Jika status render ini diaktifkan, pengguna harus meneruskan indeks matriks sebagai DWORD yang dikemas dengan setiap puncak. Ketika status render dinonaktifkan dan penpaduan puncak diaktifkan melalui status D3DRS_VERTEXBLEND, setara dengan memiliki indeks matriks 0, 1, 2, 3 di setiap puncak.
D3DRS_COLORWRITEENABLE
Nilai UINT yang memungkinkan penulisan per saluran untuk buffer warna target render. Bit yang ditetapkan menghasilkan saluran warna yang diperbarui selama penyajian 3D. Bit yang jelas mengakibatkan saluran warna tidak terpengaruh.
D3DRS_TWEENFACTOR
Nilai float yang mengontrol faktor tween.
D3DRS_BLENDOP
Nilai yang digunakan untuk memilih operasi aritmatika yang diterapkan saat status render pencambahan alfa, D3DRS_ALPHABLENDENABLE, diatur ke TRUE.

Jika kemampuan perangkat D3DPMISCCAPS_BLENDOP tidak didukung, D3DBLENDOP_ADD dilakukan.
D3DRS_POSITIONDEGREE
Tingkat interpolasi posisi N-patch. Nilai dapat D3DDEGREE_CUBIC (default) atau D3DDEGREE_LINEAR.
D3DRS_NORMALDEGREE
Tingkat interpolasi normal N-patch. Nilai dapat D3DDEGREE_LINEAR (default) atau D3DDEGREE_QUADRATIC.
D3DRS_SCISSORTESTENABLE
TRUE untuk mengaktifkan pengujian gunting dan FALSE untuk menonaktifkannya. Nilai defaultnya adalah FALSE.
D3DRS_SLOPESCALEDEPTHBIAS
Digunakan untuk menentukan berapa banyak bias yang dapat diterapkan pada primitif co-planar untuk mengurangi z-fighting. Nilai default adalah 0.
D3DRS_ANTIALIASEDLINEENABLE
TRUE untuk mengaktifkan antialias baris, FALSE untuk menonaktifkan antialias baris. Nilai defaultnya adalah FALSE.
D3DRS_MINTESSELLATIONLEVEL
Tingkat tessellation minimum. Nilai defaultnya adalah 1,0f.
D3DRS_MAXTESSELLATIONLEVEL
Tingkat tessellation maksimum. Nilai defaultnya adalah 1,0f.
D3DRS_ADAPTIVETESS_X
Jumlah tessellate adaptif, ke arah x. Nilai defaultnya adalah 0,0f.
D3DRS_ADAPTIVETESS_Y
Jumlah tessellate adaptif, ke arah y. Nilai defaultnya adalah 0,0f.
D3DRS_ADAPTIVETESS_Z
Jumlah tessellate adaptif, ke arah z. Nilai defaultnya adalah 1,0f.
D3DRS_ADAPTIVETESS_W
Jumlah tessellate adaptif, ke arah w. Nilai defaultnya adalah 0,0f.
D3DRS_ENABLEADAPTIVETESSELLATION
TRUE untuk mengaktifkan tessellation adaptif, FALSE untuk menonaktifkannya.
D3DRS_TWOSIDEDSTENCILMODE
TRUE memungkinkan stensil dua sisi, FALSE menonaktifkannya. Nilai defaultnya adalah FALSE. Aplikasi harus mengatur D3DRS_CULLMODE ke D3DCULL_NONE untuk mengaktifkan mode stensil dua sisi. Jika urutan berliku segitiga searah jarum jam, operasi D3DRS_STENCIL* akan digunakan. Jika urutan berliku berlawanan arah jajarannya, operasi D3DRS_CCW_STENCIL* akan digunakan.
D3DRS_CCW_STENCILFAIL
Operasi stensil untuk dilakukan jika pengujian stensil CCW gagal.
D3DRS_CCW_STENCILZFAIL
Operasi stensil untuk dilakukan jika uji stensil CCW lolos dan z-test gagal.
D3DRS_CCW_STENCILPASS
Operasi stensil untuk dilakukan jika stensil CCW dan tes z lulus.
D3DRS_CCW_STENCILFUNC
Fungsi perbandingan. Uji stensil CCW lolos jika fungsi stensil ((ref & mask) (stensil & masker)) BENAR.
D3DRS_COLORWRITEENABLE1
Nilai ColorWriteEnable tambahan untuk perangkat.
D3DRS_COLORWRITEENABLE2
Nilai ColorWriteEnable tambahan untuk perangkat.
D3DRS_COLORWRITEENABLE3
Nilai ColorWriteEnable tambahan untuk perangkat.
D3DRS_BLENDFACTOR
Faktor campuran konstan selama penpaduan alfa.
D3DRS_SRGBWRITEENABLE
Aktifkan penulisan target render untuk dikoreksi gamma ke sRGB. Format harus mengekspos D3DUSAGE_SRGBWRITE. Nilai default adalah 0.
D3DRS_DEPTHBIAS
Nilai floating-point yang digunakan untuk perbandingan nilai kedalaman.
D3DRS_WRAP8
Lihat D3DRS_WRAP0.
D3DRS_WRAP9
Lihat D3DRS_WRAP0.
D3DRS_WRAP10
Lihat D3DRS_WRAP0.
D3DRS_WRAP11
Lihat D3DRS_WRAP0.
D3DRS_WRAP12
Lihat D3DRS_WRAP0.
D3DRS_WRAP13
Lihat D3DRS_WRAP0.
D3DRS_WRAP14
Lihat D3DRS_WRAP0.
D3DRS_WRAP15
Lihat D3DRS_WRAP0.
D3DRS_SEPARATEALPHABLENDENABLE
TRUE memungkinkan mode campuran terpisah untuk saluran alfa. Nilai defaultnya adalah FALSE.

Ketika diatur ke FALSE, faktor dan operasi penpaduan target render yang diterapkan ke alfa dipaksa sama dengan yang didefinisikan untuk warna. Mode ini secara efektif di-hardwired ke FALSE pada implementasi yang tidak mengatur batas D3DPMISCCAPS_SEPARATEALPHABLEND.
D3DRS_SRCBLENDALPHA
Nilai ini diabaikan kecuali D3DRS_SEPARATEALPHABLENDENABLE TRUE.
D3DRS_DESTBLENDALPHA
Nilai ini diabaikan kecuali D3DRS_SEPARATEALPHABLENDENABLE TRUE.
D3DRS_BLENDOPALPHA
Nilai yang digunakan untuk memilih operasi aritmatika yang diterapkan untuk memisahkan pencamuran alfa saat status render, D3DRS_SEPARATEALPHABLENDENABLE, diatur ke TRUE.
D3DRS_FORCE_DWORD
Memaksa enumerasi ini untuk mengkompilasi ke ukuran 32 bit. Tanpa nilai ini, beberapa pengkompilasi akan memungkinkan enumerasi ini dikompilasi ke ukuran selain 32 bit. Nilai ini tidak digunakan.

Keterangan

Status render ini hanya untuk penggunaan internal:

D3DRENDERSTATE_EVICTMANAGEDTEXTURES

Menentukan apakah tekstur dikeluarkan dari memori. Driver menggunakan jenis data BOOL tanpa nilai default untuk mendeteksi apakah akan mengusir.

Status render ini menentukan apakah driver mengeluarkan tekstur yang dikelolanya (dibandingkan dengan tekstur yang dikelola oleh runtime Direct3D) dari memori video. Jika nilai status render TRUE, driver mengeluarkan tekstur. Jika tidak, driver tidak mengeluarkan tekstur tersebut.

D3DRENDERSTATE_SCENECAPTURE

Menentukan informasi adegan awal atau informasi adegan akhir untuk data geometris yang diambil dalam bingkai. Driver menggunakan jenis data BOOL dengan nilai default TRUE untuk mendeteksi informasi pengambilan adegan.

Driver merespons D3DRENDERSTATE_SCENECAPTURE terlebih dahulu dengan TRUE untuk memulai informasi adegan dan berikutnya dengan FALSE untuk informasi adegan akhir untuk mengambil data geometris dalam bingkai. Lihat contoh driver permedia2 yang dikirim dengan Windows Driver Development Kit (DDK) untuk contoh implementasi. Menggunakan status render D3DRENDERSTATE_SCENECAPTURE dalam panggilan D3dDrawPrimitives2 menggantikan rutinitas panggilan balik D3DHALCallbacks-D3dSceneCapture> warisan.

Perawatan harus diambil dalam memperbarui driver yang mengimplementasikan rutinitas panggilan balik D3DHALCallbacks-D3dSceneCapture> warisan menjadi satu menggunakan status render D3DRENDERSTATE_SCENECAPTURE. Rutinitas panggilan balik D3dSceneCapture menggunakan konstanta D3DHAL_SCENE_CAPTURE_START dan D3DHAL_SCENE_CAPTURE_END untuk menunjukkan, masing-masing, awal dan akhir adegan. Nilai konstanta ini masing-masing, 0 dan 1. Jika Anda menggunakan konstanta ini sebagai pengganti TRUE dan FALSE dalam status render ini, artinya akan menjadi kebalikan dari apa yang Anda inginkan.

D3DRS_DELETERTPATCH

DirectX 8.0 dan versi yang lebih baru saja.

Menghapus patch persegi panjang atau segitiga dari memori. Driver menggunakan jenis data DWORD tanpa nilai default untuk mendeteksi patch yang akan dihapus.

Status render ini memberi tahu driver bahwa patch akan dihapus. Nilai status render ini adalah handel ke patch yang terpengaruh. Semua informasi yang di-cache harus dibebaskan dan handel harus dihapus dari tabel handel patch driver. Status render ini tidak terlihat oleh aplikasi tetapi dihasilkan secara internal ketika aplikasi memanggil fungsi DeletePatch . Status render ini dikirim ke driver hanya ketika patch dihapus oleh DeletePatch secara eksplisit. Semua patch lainnya harus dibersihkan ketika perangkat dihancurkan.

D3DRS_MAXPIXELSHADERINST

DirectX 9.0 dan versi yang lebih baru saja.

Menentukan jumlah maksimum instruksi yang dapat dijalankan oleh perakitan shader piksel.

Driver menggunakan jenis data DWORD dengan nilai default D3DINFINITEINSTRUCTIONS (0xffffffff) untuk melaporkan jumlah maksimum instruksi pixel-shader. Jumlah maksimum ini tergantung pada versi shader piksel yang didukung perangkat tampilan seperti yang ditunjukkan dalam tabel berikut.

Versi Jumlah maksimum
lebih awal dari 2_0 0
2_0 Dari 96 ke D3DINFINITEINSTRUCTIONS
3_0 dan yang lebih baru Dari 2¹⁶ (0x0000ffff) hingga D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONS mewakili jumlah yang hampir tidak terbatas.

Nilai yang valid untuk status render ini adalah angka yang merupakan kekuatan 2; jika driver menetapkan bilangan bulat lain, runtime menggunakan daya terdekat berikutnya dari 2 angka.

Runtime mengatur anggota MaxVShaderInstructionsExecuted dari struktur D3DCAPS9 ke jumlah maksimum ini.

D3DRS_MAXVERTEXSHADERINST

DirectX 9.0 dan versi yang lebih baru saja.

Menentukan jumlah maksimum instruksi yang dapat dijalankan oleh perakitan shader vertex.

Driver menggunakan jenis data DWORD dengan nilai default D3DINFINITEINSTRUCTIONS (0xffffffff) untuk melaporkan jumlah maksimum instruksi vertex-shader. Jumlah maksimum ini tergantung pada versi shader vertex yang didukung perangkat tampilan seperti yang ditunjukkan dalam tabel berikut.

Versi Jumlah maksimum
lebih awal dari 2_0 0
2_0 dan yang lebih baru Dari 2¹⁶ (0x0000ffff) hingga D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONS mewakili jumlah yang hampir tidak terbatas.

Nilai yang valid untuk status render ini adalah angka yang merupakan kekuatan 2; jika driver menetapkan bilangan bulat lain, runtime menggunakan daya terdekat berikutnya dari 2 angka.

Runtime mengatur anggota MaxVShaderInstructionsExecuted dari struktur D3DCAPS9 ke jumlah maksimum ini.

Driver menggunakan status render ini ketika melakukan penyajian grafis. Hanya status render yang khusus untuk driver yang disertakan dalam dokumentasi Windows Driver Kit (WDK). Status render yang dapat diakses oleh aplikasi DirectX disertakan dalam dokumentasi DirectX SDK. Status render tingkat aplikasi ini mencakup karakteristik seperti apakah penpaduan alfa diaktifkan, apakah penarikan diaktifkan, apakah pencahayaan Direct3D digunakan, dan jenis bayangan yang akan digunakan.

Untuk memperbarui status render tertentu, Direct3D menyimpan informasi tentang status render, lalu memanggil rutinitas panggilan balik D3dDrawPrimitives2 driver. Informasi yang diberikan kepada driver memungkinkannya untuk:

  • Tentukan bahwa ia harus memperbarui satu atau beberapa status render.

  • Identifikasi status render mana yang akan diperbarui, dan apa nilai status render baru.

Perhatikan bahwa untuk status render tertentu yang akan dihormati, driver sebelumnya harus menetapkan bendera kemampuan di anggota struktur D3DPRIMCAPS yang relevan.

Untuk menunjukkan pembaruan status render tertentu, Direct3D menyisipkan struktur D3DHAL_DP2COMMAND ke dalam buffer perintah, mengatur anggota bCommand dari struktur ini ke D3DDP2OP_RENDERSTATE (lihat deskripsi untuk D3DDP2OP_RENDERSTATE di D3DHAL_DP2OPERATION), dan mengatur anggota wStateCount dari struktur yang sama ke jumlah status render yang akan diperbarui.

Segera setelah struktur D3DHAL_DP2COMMAND , Direct3D menyisipkan satu struktur D3DHAL_DP2RENDERSTATE ke dalam buffer perintah untuk setiap status render yang akan diperbarui. Anggota RenderState dari struktur ini mengidentifikasi status render yang akan diubah; nilai baru status render ini ditentukan di anggota dwState (untuk nilai DWORD) atau anggota fState (untuk nilai D3DVALUE).

Gambar berikut menunjukkan sebagian buffer perintah yang berisi perintah D3DDP2OP_RENDERSTATE dan dua struktur D3DHAL_DP2RENDERSTATE. Yang pertama dari tiga struktur menunjukkan bahwa dua status render akan diperbarui. Struktur kedua menunjukkan bahwa status render D3DRENDERSTATE_FILLMODE akan diubah menjadi D3DFILL_SOLID. Struktur ketiga menunjukkan bahwa status render D3DRENDERSTATE_SHADEMODE harus diperbarui ke D3DSHADE_GOURAUD.

Gambar memperlihatkan buffer perintah dengan perintah D3DDP2OP_RENDERSTATE dan dua struktur D3DHAL_DP2RENDERSTATE

Catatan Tambahan

Lihat jenis D3DTEXTURESTAGESTATETYPE, D3DTEXTUREOP, dan enumerasi D3DTEXTUREFILTER dalam dokumentasi DirectX SDK untuk daftar lengkap semua jenis status render yang diaktifkan.

Beberapa perubahan telah dilakukan pada jenis D3DRENDERSTATETYPE enumerasi untuk DirectX 5.0 dan seterusnya. D3DRENDERSTATE_BLENDENABLE telah dihapus sepenuhnya meskipun didefinisikan sebagai D3DRENDERSTATE_ALPHABLENDENABLE dalam file header d3dtypes.h . Lihat D3DRENDERSTATE_COLORKEYENABLE untuk penjelasan. Nilai bilangan bulat 128 dalam interval [128, 255] dicadangkan untuk bendera pembungkus koordinat tekstur. Ini dibangun dengan makro D3DWRAP_U dan D3DWRAP_V. Menggunakan kata bendera mempertahankan kompatibilitas ke depan dengan koordinat tekstur dimensi yang lebih tinggi dari 2D.

Operasi makro multitekstur dan D3DRENDERSTATE_TEXTUREFACTOR mengambil alih semua kontrol campuran tahap per tekstur (COLOR{OP,ARG1,ARG2} & ALPHA{OP,ARG1,ARG2}).

Persyaratan

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