ID3D11Device::CreateShaderResourceView 메서드(d3d11.h)

리소스의 데이터에 액세스하기 위한 셰이더 리소스 뷰를 만듭니다.

구문

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

매개 변수

[in] pResource

형식: ID3D11Resource*

셰이더에 대한 입력으로 사용할 리소스에 대한 포인터입니다. 이 리소스는 D3D11_BIND_SHADER_RESOURCE 플래그를 사용하여 만들어졌어야 합니다.

[in, optional] pDesc

형식: const D3D11_SHADER_RESOURCE_VIEW_DESC*

셰이더 리소스 뷰 설명에 대한 포인터입니다( D3D11_SHADER_RESOURCE_VIEW_DESC 참조). 이 매개 변수를 NULL 로 설정하여 리소스를 만든 형식을 사용하여 전체 리소스에 액세스하는 뷰를 만듭니다.

[out, optional] ppSRView

형식: ID3D11ShaderResourceView**

ID3D11ShaderResourceView에 대한 포인터의 주소입니다. 이 매개 변수를 NULL 로 설정하여 다른 입력 매개 변수의 유효성을 검사합니다(다른 입력 매개 변수가 유효성 검사를 통과하면 메서드가 S_FALSE 반환됨).

반환 값

형식: HRESULT

이 메서드는 다음 Direct3D 11 반환 코드 중 하나를 반환합니다.

설명

리소스는 하나 이상의 하위 리소스로 구성됩니다. 뷰는 파이프라인에 액세스할 수 있도록 허용하는 하위 리소스를 식별합니다. 또한 각 리소스는 뷰를 사용하여 파이프라인에 바인딩됩니다. 셰이더 리소스 뷰는 ID3D11DeviceContext::VSSetShaderResources, ID3D11DeviceContext::GSSetShaderResources 및 ID3D11DeviceContext::P SSetShaderResources API 메서드를 사용하여 모든 버퍼 또는 텍스처 리소스를 셰이더 단계에 바인딩하도록 설계되었습니다.

보기가 완전히 입력되므로 파이프라인에 바인딩될 때 무형식 리소스가 완전히 입력됩니다.

참고 무형식 버퍼(예: DXGI_FORMAT_R32G32B32A32_TYPELESS)에서 셰이더 리소스 뷰를 성공적으로 만들려면 버퍼를 만들 때 D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS 플래그를 설정해야 합니다.
 
Windows 8 시작하는 Direct3D 11.1 런타임을 사용하면 다음과 같은 새로운 용도로 CreateShaderResourceView를 사용할 수 있습니다.

Direct3D 셰이더가 해당 셰이더 리소스 보기를 처리할 수 있도록 비디오 리소스의 셰이더 리소스 보기를 만들 수 있습니다. 이러한 비디오 리소스는 Texture2D 또는 Texture2DArray입니다. 만든 셰이더 리소스 뷰에 대한 D3D11_SHADER_RESOURCE_VIEW_DESC 구조체의 ViewDimension 멤버 값은 Texture2D의 경우 D3D11_SRV_DIMENSION_TEXTURE2D, Texture2DArray의 경우 D3D11_SRV_DIMENSION_TEXTURE2DARRAY 비디오 리소스 형식과 일치해야 합니다. 또한 기본 비디오 리소스의 형식은 보기에서 사용할 수 있는 형식을 제한합니다. DXGI_FORMAT 참조 페이지의 비디오 리소스 형식 값은 보기가 제한된 서식 값을 지정합니다.

런타임 읽기+쓰기 충돌 방지 논리(리소스가 SRV 및 RTV 또는 UAV로 동시에 바인딩되지 않도록 중지)는 단순성을 위해 동일한 비디오 화면의 여러 부분의 보기를 충돌하는 것으로 처리합니다. 따라서 런타임은 하드웨어가 이러한 동시 작업을 허용할 수 있더라도 애플리케이션이 동일한 표면의 크로마로 동시에 렌더링되는 동안 루마에서 애플리케이션을 읽을 수 없습니다.

Windows Phone 8: 이 API가 지원됩니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3d11.h
라이브러리 D3D11.lib

추가 정보

ID3D11Device