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.
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) |