Bagikan melalui


PFND3D11_1DDI_CLEARVIEW fungsi panggilan balik (d3d10umddi.h)

PFND3D11_1DDI_CLEARVIEW mengatur semua elemen dalam tampilan sumber daya ke satu nilai. Tampilan sumber daya adalah deskriptor permukaan yang menunjukkan format dan mungkin subset sumber daya.

Sintaks

PFND3D11_1DDI_CLEARVIEW Pfnd3d111DdiClearview;

void Pfnd3d111DdiClearview(
  D3D10DDI_HDEVICE hDevice,
  D3D11DDI_HANDLETYPE viewType,
  VOID *hView,
  const FLOAT Color[4],
  const D3D10_DDI_RECT *pRect,
  UINT NumRects
)
{...}

Parameter

hDevice

Handel ke perangkat tampilan (konteks grafis).

viewType

Nilai jenis D3D11DDI_HANDLETYPE yang mengidentifikasi jenis handel tampilan yang mendukung operasi yang jelas ini. Jenis yang mungkin adalah sebagai berikut.

  • D3D10DDI_HT_RENDERTARGETVIEW
  • D3D11DDI_HT_UNORDEREDACCESSVIEW
  • JenisD3D11_1DDI_HT_VIDEO XXX apa pun

hView

Penunjuk ke tampilan sumber daya untuk menghapus.

Color[4]

pRect

Array struktur RECT untuk persegi panjang dalam tampilan sumber daya untuk dihapus. Jika NULL, ClearView akan menghapus seluruh permukaan.

NumRects

Jumlah persegi panjang dalam array yang ditentukan parameter pRect .

Menampilkan nilai

Tidak ada

Keterangan

ClearView hanya berfungsi pada tampilan target render (RTV), tampilan akses tidak berurut (UAV), atau tampilan video apa pun dari permukaan Texture2D . Persegi panjang kosong dalam array pRect adalah no-op. Persegi panjang kosong jika nilai atas sama dengan nilai bawah atau nilai kiri sama dengan nilai kanan.

ClearView tidak mendukung tekstur 3-D.

ClearView menerapkan nilai warna yang sama untuk semua irisan array dalam tampilan; semua persegi panjang dalam array pRect sesuai dengan setiap ikatan array. Array persegi panjang pRect adalah sekumpulan area untuk dihapus pada satu permukaan. Jika tampilan adalah array, ClearView menghapus semua persegi panjang pada setiap ikatan array satu per satu.

Ketika driver mode pengguna menerapkan persegi panjang ke buffer, driver harus mengatur nilai teratas ke 0 dan nilai bawah ke 1 dan mengatur nilai kiri dan nilai kanan untuk menggambarkan jangkauan dalam buffer. Saat nilai atas sama dengan nilai bawah atau nilai kiri sama dengan nilai kanan, persegi panjang kosong dan no-op dicapai.

Driver harus mengonversi dan menjepit nilai warna ke format tujuan yang sesuai dengan aturan konversi Direct3D. Misalnya, jika format tampilan DXGI_FORMAT_R8G8B8A8_UNORM, jepit input ke 0,0f hingga 1,0f (+INF -> 1,0f (0XFF)/NaN -> 0,0f).

Jika formatnya adalah bilangan bulat, seperti DXGI_FORMAT_R8G8B8A8_UINT, ambil input sebagai float integral. Oleh karena itu, 235,0f memetakan ke 235 (membulatkan ke nol, di luar rentang/klem nilai INF ke rentang target, dan NaN ke nol).

Berikut adalah pemetaan warnanya:

  • Warna[0]: R (atau Y untuk video)
  • Warna[1]: G (atau U/Cb untuk video)
  • Warna[2]: B (atau V/Cr untuk video)
  • Warna[3]: A

Untuk tampilan video dengan format YUV atau YCbBr, ClearView tidak mengonversi nilai warna. Dalam situasi di mana nama format tidak menunjukkan _UNORM, _UINT, dan sebagainya, ClearView mengasumsikan _UINT. Oleh karena itu, 235,0f memetakan ke 235 (membulatkan ke nol, di luar rentang/klem nilai INF ke rentang target, dan NaN ke nol).

Untuk tampilan Microsoft Direct3D dari permukaan video RTV atau UAV subsampel, perhatikan bahwa dimensi tampilan didasarkan pada berapa banyak piksel dalam format tampilan daripada jumlah piksel video logis yang mendasarinya. Misalnya permukaan memiliki format YUY2 dengan dimensi 1920 sebesar 1080 piksel dan RTV menggunakan format DXGI_FORMAT_R8G8B8A8_UINT. Tampilan tampaknya Direct3D memiliki 1920/2 = 960 R8G8B8A8 piksel ke arah horizontal. Jadi persegi panjang apa pun yang diteruskan ke ClearView ditafsirkan dalam ruang ini. Selain itu, nilai yang jelas diambil untuk semua 4 komponen, R8G8B8A8, seolah-olah tidak berbeda dari permukaan R8G8B8A8 sejati. Dalam hal ini, R, G, B, dan A tidak berarti nilai warna RGBA standar; sebaliknya, mereka mengidentifikasi lokasi dalam memori, dan pemanggil bertanggung jawab untuk memahami apa artinya memasukkan data ke lokasi tersebut dalam konteks permukaan video.

Namun, tampilan video permukaan video (seperti tampilan yang disediakan untuk fungsi CreateVideoDecoderOutputView dan fungsi XxxInputView dan XxxOutputView lainnya) muncul pada dimensi logis penuh. Dalam hal ini, dimensi horizontal memiliki lebar 1920 piksel, sehingga struktur RECT diteruskan ke ClearView menghormatinya. RECTtersebut harus diselaraskan sehingga tidak mengabaikan blok subsampel, jika tidak, runtime akan menghilangkan panggilan ke fungsi ini. Untuk tampilan video, warna YUV harus direplikasi dengan tepat untuk format subsampel. Misalnya, YUV dalam panggilan ClearView memiliki nilai Y yang diduplikasi untuk setiap blok di permukaan YUY2.

Struktur D3D10_DDI_RECT didefinisikan sebagai struktur RECT .

typedef RECT D3D10_DDI_RECT;

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8
Server minimum yang didukung Windows Server 2012
Target Platform Desktop
Header d3d10umddi.h (termasuk D3d10umddi.h)

Lihat juga

CreateVideoDecoderOutputView

D3D11DDI_HANDLETYPE

RECT