PFND3D10DDI_SETVIEWPORTS fungsi panggilan balik (d3d10umddi.h)

Fungsi SetViewports mengatur viewports.

Sintaks

PFND3D10DDI_SETVIEWPORTS Pfnd3d10ddiSetviewports;

void Pfnd3d10ddiSetviewports(
       D3D10DDI_HDEVICE unnamedParam1,
  [in] UINT NumViewports,
  [in] UINT ClearViewports,
       const D3D10_DDI_VIEWPORT *unnamedParam4
)
{...}

Parameter

unnamedParam1

hDevice [in]

Handel ke perangkat tampilan (konteks grafis).

[in] NumViewports

Jumlah total viewport yang ditentukan parameter pViewports .

[in] ClearViewports

Jumlah viewport setelah jumlah viewport yang ditentukan NumViewports untuk diatur ke NULL. Angka ini menunjukkan perbedaan antara jumlah viewport sebelumnya (yaitu, ketika runtime Microsoft Direct3D yang sebelumnya disebut SetViewports) dan jumlah viewport baru.

Perhatikan bahwa nomor yang ditentukan ClearViewports hanyalah bantuan pengoptimalan karena driver tampilan mode pengguna dapat menghitung angka ini.

unnamedParam4

pViewports [in]

Array struktur D3D10_DDI_VIEWPORT untuk mengatur viewport.

Menampilkan nilai

Tidak ada

Keterangan

Driver dapat menggunakan fungsi panggilan balik pfnSetErrorCb untuk mengatur kode kesalahan.

Viewports menentukan klip posting transformasi ke target render output dan sumber daya stensil kedalaman. Setiap viewport yang tidak ditentukan dalam panggilan ke SetViewports diatur ke NULL. Viewport NULL didefinisikan sebagai berikut.

struct D3D10_DDI_VIEWPORT {
  FLOAT  TopLeftX = NaN;
  FLOAT  TopLeftY = NaN;
  FLOAT  Width = NaN;
  FLOAT  Height = NaN;
  FLOAT  MinDepth = NaN;
  FLOAT  MaxDepth = NaN;
} D3D10_DDI_VIEWPORT;</pre>

Definisi ini menyiratkan bahwa viewport nonaktif.

Driver tampilan mode pengguna harus mengatur semua viewport secara atomik sebagai satu operasi.

Meskipun parameter NumViewports menentukan jumlah viewports dalam array yang ditentukan parameter pViewports , beberapa nilai dalam array dapat berupa NULL.

Rentang viewport antara angka yang ditentukan NumViewports dan jumlah maksimum viewport yang diizinkan diperlukan untuk memuat semua nilai NULL atau tidak terikat. Angka yang ditentukan parameter ClearViewports memberi tahu driver tentang berapa banyak viewport yang harus dihapus driver untuk operasi atom saat ini.

Jika panggilan sebelumnya ke SetViewports melewati nilai 2 dalam parameter NumViewports dan panggilan saat ini ke SetViewports melewati nilai 4 di NumViewports, panggilan saat ini ke SetViewports juga meneruskan nilai 0 dalam parameter ClearViewports . Jika panggilan berturut-turut berikutnya ke SetViewports melewati nilai 1 di NumViewports, panggilan berturut-turut juga melewati nilai 3 (4 - 1) di ClearViewports.

Ketika nilai viewports yang jelas diminta selama operasi kueri mode pengguna, nilainya adalah perbedaan antara jumlah maksimum viewports dan nilai viewports.

SetViewports memastikan bahwa viewport valid. Artinya, SetViewports memastikan bahwa dimensi viewports berada dalam rentang (D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX, D3D10_MIN_DEPTH, dan D3D10_MAX_DEPTH). SetViewports juga memastikan bahwa tidak ada koordinat naN dan membersihkan nilai float denormalisasi ke nol.

Driver tidak boleh mengalami kesalahan, kecuali untuk D3DDDIERR_DEVICEREMOVED. Oleh karena itu, jika driver melewati kesalahan apa pun, kecuali untuk D3DDDIERR_DEVICEREMOVED, dalam panggilan ke fungsi pfnSetErrorCb , runtime Microsoft Direct3D akan menentukan bahwa kesalahan sangat penting. Bahkan jika perangkat dihapus, driver tidak diperlukan untuk mengembalikan D3DDDIERR_DEVICEREMOVED; namun, jika penghapusan perangkat mengganggu pengoperasian SetViewports (yang biasanya tidak boleh terjadi), driver dapat mengembalikan D3DDDIERR_DEVICEREMOVED.

Persyaratan

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

Lihat juga

D3D10DDI_DEVICEFUNCS

D3D10_DDI_VIEWPORT

pfnSetErrorCb