ID3D11DeviceContext::CopySubresourceRegion メソッド (d3d11.h)
ソース リソースからターゲット リソースにリージョンをコピーします。
構文
void CopySubresourceRegion(
[in] ID3D11Resource *pDstResource,
[in] UINT DstSubresource,
[in] UINT DstX,
[in] UINT DstY,
[in] UINT DstZ,
[in] ID3D11Resource *pSrcResource,
[in] UINT SrcSubresource,
[in, optional] const D3D11_BOX *pSrcBox
);
パラメーター
[in] pDstResource
型: ID3D11Resource*
宛先リソースへのポインター (ID3D11Resourceを参照)。
[in] DstSubresource
型: UINT
変換先のサブリソース インデックス。
[in] DstX
型: UINT
コピー先領域の左上隅の x 座標。
[in] DstY
型: UINT
宛先領域の左上隅の y 座標。 1D サブリソースの場合、これは 0 である必要があります。
[in] DstZ
型: UINT
ターゲット領域の左上隅の z 座標。 1D または 2D サブリソースの場合、これは 0 である必要があります。
[in] pSrcResource
型: ID3D11Resource*
ソース リソースへのポインター (ID3D11Resourceを参照)。
[in] SrcSubresource
型: UINT
ソース サブリソース インデックス。
[in, optional] pSrcBox
型: const D3D11_BOX*
コピー可能なソース サブリソースを定義する 3D ボックス (D3D11_BOX参照) へのポインター。 NULL
ボックスが空の場合、no-opになります。 上の値が下の値以上の場合、または左の値が右の値以上であるか、前面の値が戻り値以上の場合、ボックスは空になります。 ボックスが空の場合、CopySubresourceRegion
戻り値
何一つ
備考
ソース ボックスは、ソース リソースのサイズ内にある必要があります。 コピー先のオフセット (x、y、z) を使用すると、コピー先のリソースに書き込むときにソース ボックスをオフセットできます。ただし、ソース ボックスの寸法とオフセットは、リソースのサイズ内である必要があります。 コピー先リソースの外部でコピーしようとしたり、ソース リソースよりも大きいソース ボックスを指定したりすると、copySubresourceRegion
リソースがバッファーの場合、すべての座標はバイト単位です。リソースがテクスチャの場合、すべての座標はテクセル内にあります。 D3D11CalcSubresource は、サブリソース インデックスを計算するためのヘルパー関数です。
CopySubresourceRegion
- 異なるサブリソースである必要があります (ただし、同じリソースから取得できます)。
- 同じ型である必要があります。
- 互換性のある DXGI 形式 (同じまたは同じ型グループから) を持っている必要があります。 たとえば、DXGI_FORMAT_R32G32B32_FLOAT テクスチャは、両方の形式が DXGI_FORMAT_R32G32B32_TYPELESS グループ内にあるため、DXGI_FORMAT_R32G32B32_UINT テクスチャにコピーできます。
CopySubresourceRegion は、いくつかの形式の種類間でコピーできます。 詳細については、「Direct3D 10.1を使用した
フォーマット変換」を参照してください。 - 現在マップされていない可能性があります。
CopySubresourceRegion ではコピーのみがサポートされます。ストレッチ、カラー キー、ブレンドはサポートされていません。 CopySubresourceRegion
アプリでリソース全体をコピーする必要がある場合は、代わりに ID3D11DeviceContext::CopyResource を使用することをお勧めします。
CopySubresourceRegion
の例
次のコード スニペットは、(120,100),(200,220)にある) ボックスをソース テクスチャからコピー先テクスチャの領域 (10,20),(90,140) にコピーします。D3D11_BOX sourceRegion;
sourceRegion.left = 120;
sourceRegion.right = 200;
sourceRegion.top = 100;
sourceRegion.bottom = 220;
sourceRegion.front = 0;
sourceRegion.back = 1;
pd3dDeviceContext->CopySubresourceRegion( pDestTexture, 0, 10, 20, 0, pSourceTexture, 0, &sourceRegion );
2D テクスチャの場合、前面と背面はそれぞれ 0 と 1 に設定されていることに注意してください。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | d3d11.h |
ライブラリ | D3D11.lib |