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 返回代码之一。
注解
资源由一个或多个子资源组成;视图标识允许管道访问的子资源。 此外,每个资源都使用视图绑定到管道。 着色器资源视图旨在使用以下 API 方法将任何缓冲区或纹理资源绑定到着色器阶段: ID3D11DeviceContext::VSSetShaderResources、 ID3D11DeviceContext::GSSetShaderResources 和 ID3D11DeviceContext::P SSetShaderResources。
由于视图已完全类型化,这意味着无类型资源在绑定到管道时变为完全类型化。
可以创建视频资源的着色器资源视图,以便 Direct3D 着色器可以处理这些着色器资源视图。 这些视频资源是 Texture2D 或 Texture2DArray。 创建的着色器资源视图的 D3D11_SHADER_RESOURCE_VIEW_DESC 结构的 ViewDimension 成员中的值必须与视频资源的类型匹配,D3D11_SRV_DIMENSION_TEXTURE2D适用于 Texture2D,对于 Texture2DArray 为 D3D11_SRV_DIMENSION_TEXTURE2DARRAY。 此外,基础视频资源的格式会限制视图可以使用的格式。 DXGI_FORMAT引用页上的视频资源格式值指定视图限制的格式值。
运行时读写冲突防护逻辑 (它阻止资源同时绑定为 SRV 和 RTV 或 UAV,) 为简单起见,将同一视频图面不同部分的视图视为冲突。 因此,即使硬件可能允许这些同时操作,运行时也不允许应用程序从 luma 读取数据,而应用程序同时呈现为同一图面中的色度。
Windows Phone 8:支持此 API。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d11.h |
Library | D3D11.lib |