PFND3DDDI_SETSTREAMSOURCEFREQ fungsi panggilan balik (d3dumddi.h)

Fungsi SetStreamSourceFreq mengatur pembagi frekuensi sumber aliran yang terikat ke buffer vertex.

Sintaks

PFND3DDDI_SETSTREAMSOURCEFREQ Pfnd3dddiSetstreamsourcefreq;

HRESULT Pfnd3dddiSetstreamsourcefreq(
  HANDLE hDevice,
  const D3DDDIARG_SETSTREAMSOURCEFREQ *unnamedParam2
)
{...}

Parameter

hDevice

Handel ke perangkat tampilan (konteks grafis).

unnamedParam2

pData [in]

Penunjuk ke struktur D3DDDIARG_SETSTREAMSOURCEFREQ yang menentukan bagaimana pembavisor frekuensi untuk sumber aliran diatur.

Menampilkan nilai

SetStreamSourceFreq mengembalikan S_OK atau hasil kesalahan yang sesuai jika pembagi frekuensi untuk bagian sumber aliran vertex tidak berhasil diatur.

Keterangan

Driver tampilan mode pengguna untuk perangkat yang mendukung vertex shader versi 3.0 dan yang lebih baru harus menerapkan pembagian frekuensi aliran verteks. Untuk model shader vertex versi 2.0 dan yang lebih lama (termasuk fungsi tetap), shader vertex dipanggil sekali untuk setiap puncak. Untuk setiap panggilan, register vertex input diinisialisasi dengan elemen vertex unik dari aliran vertex. Namun, jika driver menggunakan pembagian frekuensi aliran verteks, shader vertex (3.0 dan yang lebih baru) dapat dipanggil untuk menginisialisasi register input yang berlaku pada tingkat yang lebih jarang.

Setelah pembagi frekuensi aliran diatur--misalnya, ke 2--driver harus mengambil data dari aliran dan meneruskan data ini ke vertex input yang berlaku mendaftar setiap 2 simpul. Pembavisor ini memengaruhi setiap elemen dalam aliran.

Driver menggunakan pembagi frekuensi untuk menghitung offset vertex ke dalam buffer vertex sesuai dengan rumus berikut:

VertexOffset = ((VertexIndex / Divider) * StreamStride) + StreamOffset

Untuk setiap aliran puncak yang digunakan, jika driver menerima nilai start-vertex selama panggilan ke fungsi DrawPrimitive driver, driver juga membagi nilai start-vertex ini dengan pembagi frekuensi dan faktor hasil dalam rumus. Nilai start-vertex ini disediakan dalam anggota VStart dari struktur D3DDDIARG_DRAWPRIMITIVE . Rumus berikut menyertakan nilai start-vertex:

VertexOffset = (StartVertex / Divider) + 
       ((VertexIndex / Divider) * StreamStride) + StreamOffset 

Perhatikan bahwa rumus sebelumnya menggunakan pembagian bilangan bulat.

Driver mengabaikan pengaturan pembagi frekuensi aliran baik untuk primitif terindeks atau jika driver hanya mendukung model shader vertex yang lebih lama dari versi 3.0 (termasuk fungsi tetap).

Persyaratan

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

Lihat juga

D3DDDIARG_DRAWPRIMITIVE

D3DDDIARG_SETSTREAMSOURCEFREQ

D3DDDI_DEVICEFUNCS

DrawPrimitive