次の方法で共有


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 リターン コードを返します

注釈

リソースは 1 つ以上のサブリソースで構成されます。ビューは、パイプラインがアクセスできるようにするサブリソースを識別します。 さらに、各リソースはビューを使用してパイプラインにバインドされます。 シェーダー リソース ビューは、ID3D11DeviceContext::VSSetShaderResources、ID3D11DeviceContext::GSSetShaderResourcesID3D11DeviceContext::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 として同時にバインドされないようにする) は、同じビデオ画面のさまざまな部分のビューを、わかりやすくするために競合として扱います。 したがって、ランタイムでは、アプリケーションが luma から読み取ることを許可しません。ただし、ハードウェアで同時操作が可能になる場合でも、アプリケーションは同時に同じサーフェスでクロマにレンダリングされます。

Windows Phone 8: この API はサポートされています。

要件

要件
対象プラットフォーム Windows
ヘッダー d3d11.h
Library D3D11.lib

こちらもご覧ください

ID3D11Device