ID3D11DeviceContext::ResolveSubresource

マルチサンプリングされたリソースをマルチサンプリングされていないリソースにコピーします。

void 
ResolveSubresource(
  ID3D11Resource *pDstResource,
  UINT DstSubresource,
  ID3D11Resource *pSrcResource,
  UINT SrcSubresource,
  DXGI_FORMAT Format
);

パラメータ

  • pDstResource
    コピー先のリソースです。D3D11_USAGE_DEFAULT フラグを使用して作成し、シングルサンプリングされている必要があります。「ID3D11Resource」を参照してください。
  • DstSubresource
    コピー先のサブリソースを特定するための、ゼロから始まるインデックスです。インデックスを計算するには、D3D11CalcSubresource を使用します。
  • pSrcResource
    コピー元のリソースです。マルチサンプリングされている必要があります。
  • SrcSubresource
    コピー元リソース内のコピー元サブリソースです。
  • Format
    マルチサンプリングされたリソースをシングルサンプリングされたリソースに解決する方法を指定する DXGI_FORMAT です。「解説」を参照してください。

戻り値

返されるものはありません。

解説 

この API は、あるレンダリング パスで生成されたレンダー ターゲットを別のレンダリング パスの入力として再使用する場合に最適です。

コピー元リソースとコピー先リソースは、リソース タイプと次元が同じである必要があります。さらに、コピー元とコピー先のフォーマットには互換性が必要です。これには次の 3 つのシナリオがあります。

シナリオ 要件
コピー元およびコピー先が事前に構造化され、データ型が決定されている コピー元およびコピー先の双方のフォーマットが同じであり、そのフォーマットを Format パラメーターで指定する必要があります。
双方のリソースで事前構造化は行われているが、データ型は一方でしか決定されていない データ型が決定されているリソースのフォーマットは、データ型がないリソースとの互換性が必要です (たとえば、データ型が決定されたリソースが DXGI_FORMAT_R32_FLOAT で、データ型のないリソースが DXGI_FORMAT_R32_TYPELESS)。データ型が決定されているリソースのフォーマットを Format パラメーターで指定する必要があります。
コピー元およびコピー先が事前に構造化されているが、データ型がない コピー元とコピー先の双方が同一のデータ型のないフォーマットであり (たとえば両方が DXGI_FORMAT_R32_TYPELESS であることが必要)、コピー元とコピー先の両方で互換性のあるフォーマットを Format パラメーターで指定する必要があります (たとえば双方が DXGI_FORMAT_R32_TYPELESS である場合、Format パラメーターで DXGI_FORMAT_R32_FLOAT を指定できます)。

たとえば、フォーマットが DXGI_FORMAT_R16G16B16A16_TYPELESS であるとします。

  • コピー元 (またはコピー先) のフォーマットには、DXGI_FORMAT_R16G16B16A16_UNORM を指定できます。
  • コピー先 (またはコピー元) のフォーマットには、DXGI_FORMAT_R16G16B16A16_FLOAT を指定できます。

要件

ヘッダー: D3D11.h 宣言

ライブラリ: D3D11.lib 内容