Bagikan melalui


PFND3D11DDI_SETRENDERTARGETS fungsi panggilan balik (d3d10umddi.h)

Set fungsi SetRenderTargets(D3D11) merender permukaan target.

Sintaks

PFND3D11DDI_SETRENDERTARGETS Pfnd3d11ddiSetrendertargets;

void Pfnd3d11ddiSetrendertargets(
  [in] D3D10DDI_HDEVICE unnamedParam1,
  [in] const D3D10DDI_HRENDERTARGETVIEW *unnamedParam2,
  [in] UINT NumRTVs,
  [in] UINT ClearSlots,
  [in] D3D10DDI_HDEPTHSTENCILVIEW unnamedParam5,
  [in] const D3D11DDI_HUNORDEREDACCESSVIEW *unnamedParam6,
  [in] const UINT *unnamedParam7,
       UINT UAVStartSlot,
  [in] UINT NumUAVs,
  [in] UINT UAVRangeStart,
  [in] UINT UAVRangeSize
)
{...}

Parameter

[in] unnamedParam1

hDevice: Handel ke perangkat tampilan (konteks grafis).

[in] unnamedParam2

phRenderTargetView: Array handel ke objek tampilan target render (RTV) untuk diatur. Perhatikan bahwa beberapa nilai handel bisa NULL.

[in] NumRTVs

Jumlah elemen dalam array yang disediakan dalam phRenderTargetView untuk diatur RTV.

[in] ClearSlots

Jumlah objek RTV yang tidak terikat; artinya, objek tampilan target render yang sebelumnya terikat tetapi tidak perlu lagi terikat.

[in] unnamedParam5

hDepthStencilView: Handel ke buffer stensil kedalaman untuk diatur.

[in] unnamedParam6

phUnorderedAccessView: Array handel ke objek tampilan akses tidak berurut (UAV) untuk diatur.

[in] unnamedParam7

pUAVInitialCounts: Array menambahkan dan mengonsumsi offset buffer. Parameter ini hanya relevan untuk UAV dari array phUnorderedAccessView yang dibuat dengan D3D11_DDI_BUFFER_UAV_FLAG_APPEND atau D3D11_DDI_BUFFER_UAV_FLAG_COUNTER diatur dalam anggota Bendera dari struktur D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW saat UAV dibuat; jika tidak, itu diabaikan. Jika elemen dalam array ini diatur ke -1, offset saat ini untuk buffer tambahkan dan konsumsi harus disimpan. Nilai lain menyebabkan driver mengatur penghitung tersembunyi untuk penambung UAV tersebut dan mengonsumsi buffer.

UAVStartSlot

Indeks UAV pertama yang mengikat. UAVStartSlot harus setidaknya sehebat parameter NumRTVs .

Catatan

Hanya satu set titik pengikatan bersama yang ada untuk RTV dan UAV. RTV terikat terlebih dahulu, diikuti oleh UAV.

[in] NumUAVs

Jumlah UAV yang akan diikat.

[in] UAVRangeStart

UAV pertama dalam set semua UAV yang diperbarui (yang mencakup pengikatan NULL ).

[in] UAVRangeSize

Jumlah UAV dalam kumpulan semua UAV yang diperbarui (yang mencakup pengikatan NULL ).

Nilai kembali

Tidak ada

Keterangan

Deskriptor sumber daya seperti RTV dan UAV harus terikat (dimasukkan ke dalam slot input) sebelum shader dapat mengaksesnya untuk dibaca atau ditulis.

Gambar berikut menunjukkan contoh dengan lima sumber daya.

Contoh RTV dan UAV.

Dalam contoh di atas:

  • NumRTVs = 2
  • UAVStartSlot = 2
  • NumUAVs = 3

NumUAV dan UAVStartSlot menentukan rentang mana dalam array UAV yang berisi perubahan dalam kaitannya dengan status yang sebelumnya terikat. Perhatikan bahwa titik-titik dalam rentang bisa tidak berubah.

Parameter UAVRangeStart dan UAVRangeSize adalah kenyamanan yang mengungkapkan rentang apa yang sebenarnya berubah mengingat bahwa DDI Direct3D selalu mengikat semuanya (termasuk apa yang tidak berubah). Runtime D3D11 merumuskannya atas nama aplikasi sebagai informasi tambahan untuk penulis driver sebagai petunjuk untuk kemungkinan pengoptimalan. Biasanya, runtime D3D11 akan memanggil fungsi ini dengan nilai UAVRangeStart dan UAVRangeSize untuk menunjukkan seluruh rentang. Menggunakan contoh di atas:

  • Untuk memilih seluruh rentang (tidak ada perubahan yang diyakini terjadi), UAVRangeStart = 2 dan UAVRangeSize = 3.
  • Untuk menunjukkan bahwa hanya UAV pertama yang mungkin telah berubah, UAVRangeStart = 2 dan UAVRangeSize = 1.

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

Driver seharusnya tidak mengalami kesalahan apa pun, 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 diharuskan untuk mengembalikan D3DDDIERR_DEVICEREMOVED; namun, jika penghapusan perangkat mengganggu pengoperasian SetRenderTargets (yang biasanya tidak boleh terjadi), driver dapat mengembalikan D3DDDIERR_DEVICEREMOVED.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung SetRenderTargets(D3D11) didukung dimulai dengan sistem operasi Windows 7.
Target Platform Desktop
Header d3d10umddi.h (termasuk D3d10umddi.h)

Lihat juga

D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb