次の方法で共有


ID3D11Device3::ReadFromSubresource メソッド (d3d11_3.h)

NULL D3D11_MAPPED_SUBRESOURCE パラメーターを指定しながら、ID3D11DeviceContext3::Map を使用してマップされた D3D11_USAGE_DEFAULT テクスチャからデータをコピーします。

構文

void ReadFromSubresource(
  [out]          void            *pDstData,
  [in]           UINT            DstRowPitch,
  [in]           UINT            DstDepthPitch,
  [in]           ID3D11Resource  *pSrcResource,
  [in]           UINT            SrcSubresource,
  [in, optional] const D3D11_BOX *pSrcBox
);

パラメーター

[out] pDstData

型: void*

メモリ内の宛先データへのポインター。

[in] DstRowPitch

型: UINT

コピー先データの 1 行のサイズ。

[in] DstDepthPitch

型: UINT

コピー先データの 1 つの深度スライスのサイズ。

[in] pSrcResource

種類: ID3D11Resource*

ソース リソースへのポインター ( 「ID3D11Resource」を参照)。

[in] SrcSubresource

型: UINT

宛先サブリソースを識別する 0 から始まるインデックス。 詳細については、「 D3D11CalcSubresource」を参照してください。

[in, optional] pSrcBox

型: const D3D11_BOX*

リソース データのコピー元となるコピー先サブリソースの部分を定義するボックスへのポインター。 NULL の場合、データはオフセットなしで宛先サブリソースから読み取られます。 変換先のディメンションは、変換先に合っている必要があります ( D3D11_BOXを参照)。

空のボックスを使用すると、操作が不要になります。 上の値が下の値以上の場合、または左の値が右の値以上であるか、前面の値が戻り値以上の場合、ボックスは空になります。 ボックスが空の場合、このメソッドは操作を実行しません。

戻り値

なし

解説

指定されたリソースは、NULL D3D11_MAPPED_SUBRESOURCE パラメーターを指定するときに ID3D11DeviceContext3::Map の以前の呼び出しによって書き込み用にマップされた D3D11_USAGE_DEFAULT テクスチャである必要があります。

この API は、高頻度で を呼び出すことを目的としています。 呼び出し元は、各呼び出し中に小さなバッファーを提供しながら、テクスチャのプログレッシブ 領域を更新する反復呼び出しを行うことでメモリを削減できます。 ただし、十分な大きさの領域を指定するのが最も効率的です。これは、D3D が返される前にテクスチャ内のキャッシュ ライン全体を埋め込むためです。

効率を高める場合は、ボックス内のエクステントの境界と配置が (64 / [ピクセルあたりのバイト数] ) ピクセルの水平方向であることを確認します。 垂直方向の境界と配置は 2 行にする必要があります。ただし、ピクセル単位の 1 バイト形式が使用されている場合を除き、4 行をお勧めします。 呼び出しごとに 1 つの深度スライスが効率的に処理されます。 128 バイトでアラインされたポインターとストライドを提供することは推奨されますが、必須ではありません。

サブミップマップ レベルから読み取る場合は、上記よりも大きな幅と高さを使用することをお勧めします。 これは、小さなミップマップ レベルが実際には大きなメモリ ブロック内に格納され、オフセット量が不透明になり、キャッシュ ラインへの配置に干渉する可能性があるためです。

要件

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

こちらもご覧ください

ID3D11Device3