Bagikan melalui


METODE ID3D11Device::CreateShaderResourceView (d3d11.h)

Buat tampilan sumber daya shader untuk mengakses data dalam sumber daya.

Sintaks

HRESULT CreateShaderResourceView(
  [in]            ID3D11Resource                        *pResource,
  [in, optional]  const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
  [out, optional] ID3D11ShaderResourceView              **ppSRView
);

Parameter

[in] pResource

Jenis: ID3D11Resource*

Penunjuk ke sumber daya yang akan berfungsi sebagai input ke shader. Sumber daya ini harus dibuat dengan bendera D3D11_BIND_SHADER_RESOURCE .

[in, optional] pDesc

Jenis: const D3D11_SHADER_RESOURCE_VIEW_DESC*

Penunjuk ke deskripsi tampilan sumber daya shader (lihat D3D11_SHADER_RESOURCE_VIEW_DESC). Atur parameter ini ke NULL untuk membuat tampilan yang mengakses seluruh sumber daya (menggunakan format yang dibuat dengan sumber daya).

[out, optional] ppSRView

Jenis: ID3D11ShaderResourceView**

Alamat pointer ke ID3D11ShaderResourceView. Atur parameter ini ke NULL untuk memvalidasi parameter input lainnya (metode akan mengembalikan S_FALSE jika parameter input lainnya lolos validasi).

Nilai kembali

Jenis: HRESULT

Metode ini mengembalikan salah satu Kode Pengembalian Direct3D 11 berikut.

Keterangan

Sumber daya terdiri dari satu atau beberapa subsumber daya; tampilan mengidentifikasi subsumber daya mana yang memungkinkan alur mengakses. Selain itu, setiap sumber daya terikat ke alur menggunakan tampilan. Tampilan shader-resource dirancang untuk mengikat buffer atau sumber daya tekstur apa pun ke tahap shader menggunakan metode API berikut: ID3D11DeviceContext::VSSetShaderResources, ID3D11DeviceContext::GSSetShaderResources dan ID3D11DeviceContext::P SSetShaderResources.

Karena tampilan sepenuhnya ditik, ini berarti bahwa sumber daya tanpa jenis menjadi sepenuhnya ditik ketika terikat ke alur.

Catatan Agar berhasil membuat tampilan sumber daya shader dari buffer tanpa jenis (misalnya, DXGI_FORMAT_R32G32B32A32_TYPELESS), Anda harus mengatur bendera D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS saat membuat buffer.
 
Runtime Direct3D 11.1, yang tersedia dimulai dengan Windows 8, memungkinkan Anda menggunakan CreateShaderResourceView untuk tujuan baru berikut.

Anda dapat membuat tampilan sumber daya shader dari sumber daya video sehingga shader Direct3D dapat memproses tampilan sumber daya shader tersebut. Sumber daya video ini adalah Texture2D atau Texture2DArray. Nilai dalam anggota ViewDimension dari struktur D3D11_SHADER_RESOURCE_VIEW_DESC untuk tampilan sumber daya shader yang dibuat harus cocok dengan jenis sumber daya video, D3D11_SRV_DIMENSION_TEXTURE2D untuk Texture2D dan D3D11_SRV_DIMENSION_TEXTURE2DARRAY untuk Texture2DArray. Selain itu, format sumber daya video yang mendasar membatasi format yang dapat digunakan tampilan. Nilai format sumber daya video pada halaman referensi DXGI_FORMAT menentukan nilai format yang dibatasi tampilannya.

Logika pencegahan konflik baca+tulis runtime (yang menghentikan sumber daya terikat sebagai SRV dan RTV atau UAV pada saat yang sama) memperlakukan tampilan berbagai bagian dari permukaan video yang sama dengan konflik untuk kesederhanaan. Oleh karena itu, runtime tidak memungkinkan aplikasi untuk membaca dari luma sementara aplikasi secara bersamaan merender ke klorma di permukaan yang sama meskipun perangkat keras mungkin memungkinkan operasi simultan ini.

Windows Phone 8: API ini didukung.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header d3d11.h
Pustaka D3D11.lib

Lihat juga

ID3D11Device