Bagikan melalui


Metode IDirect3DDevice9::P rocessVertices (d3d9helper.h)

Menerapkan pemrosesan vertex yang ditentukan oleh shader vertex ke kumpulan aliran data input, menghasilkan satu aliran data vertex yang diselingi ke buffer vertex tujuan.

Sintaks

HRESULT ProcessVertices(
  [in] UINT                        SrcStartIndex,
  [in] UINT                        DestIndex,
  [in] UINT                        VertexCount,
  [in] IDirect3DVertexBuffer9      *pDestBuffer,
  [in] IDirect3DVertexDeclaration9 *pVertexDecl,
  [in] DWORD                       Flags
);

Parameter

[in] SrcStartIndex

Jenis: UINT

Indeks puncak pertama yang akan dimuat.

[in] DestIndex

Jenis: UINT

Indeks verteks pertama di buffer vertex tujuan tempat hasil ditempatkan.

[in] VertexCount

Jenis: UINT

Jumlah simpul yang akan diproses.

[in] pDestBuffer

Jenis: IDirect3DVertexBuffer9*

Pointer ke antarmuka IDirect3DVertexBuffer9, buffer vertex tujuan yang mewakili aliran data vertex yang saling terkait.

[in] pVertexDecl

Jenis: IDirect3DVertexDeclaration9*

Penunjuk ke antarmuka IDirect3DVertexDeclaration9 yang mewakili deklarasi data vertex output. Ketika vertex shader 3.0 atau lebih tinggi ditetapkan sebagai shader vertex saat ini, deklarasi vertex output harus ada.

[in] Flags

Jenis: DWORD

Opsi pemrosesan. Atur parameter ini ke 0 untuk pemrosesan default. Atur ke D3DPV_DONOTCOPYDATA untuk mencegah sistem menyalin data puncak yang tidak terpengaruh oleh operasi vertex ke dalam buffer tujuan. Nilai D3DPV_DONOTCOPYDATA dapat dikombinasikan dengan satu atau beberapa nilai D3DLOCK yang sesuai untuk buffer tujuan.

Mengembalikan nilai

Jenis: HRESULT

Jika metode berhasil, nilai yang dikembalikan adalah D3D_OK. Jika metode gagal, nilai yang dikembalikan dapat D3DERR_INVALIDCALL.

Keterangan

Urutan operasi untuk metode ini adalah sebagai berikut:

  • Ubah simpul menjadi ruang proyeksi menggunakan matriks dunia + tampilan + proyeksi.
  • Koordinat layar komputasi menggunakan pengaturan viewport.
  • Jika kliping diaktifkan, komputasi kode kliping dan simpan di buffer internal, yang terkait dengan buffer vertex tujuan. Jika vertex berada di dalam frustum tampilan, koordinat layarnya dihitung. Jika puncak berada di luar frustum tampilan, puncak disimpan di buffer vertex tujuan dalam koordinat ruang proyeksi.
  • Catatan lain: Pengguna tidak memiliki akses ke buffer kode klip internal. Tidak ada kliping yang dilakukan pada segitiga atau primitif lainnya.
Buffer vertex tujuan, pDestBuffer, harus dibuat dengan parameter FVF bukan nol di IDirect3DDevice9::CreateVertexBuffer. Kode FVF yang ditentukan selama panggilan ke metode IDirect3DDevice9::CreateVertexBuffer menentukan elemen vertex yang ada di buffer vertex tujuan.

Ketika Direct3D menghasilkan koordinat tekstur, atau menyalin atau mengubah koordinat tekstur input, dan format koordinat tekstur output menentukan lebih banyak komponen koordinat tekstur daripada yang dihasilkan Direct3D, Direct3D tidak mengubah komponen tambahan ini.

Persyaratan

   
Target Platform Windows
Header d3d9helper.h (termasuk D3D9.h)
Pustaka D3D9.lib

Lihat juga

Jenis Perangkat dan Persyaratan Pemrosesan Vertex (Direct3D 9)

Pemrosesan Verteks Fungsi Tetap (Direct3D 9)

IDirect3DDevice9