次の方法で共有


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

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

構文

void WriteToSubresource(
  [in]           ID3D11Resource  *pDstResource,
  [in]           UINT            DstSubresource,
  [in, optional] const D3D11_BOX *pDstBox,
  [in]           const void      *pSrcData,
  [in]           UINT            SrcRowPitch,
  [in]           UINT            SrcDepthPitch
);

パラメーター

[in] pDstResource

種類: ID3D11Resource*

宛先リソース ( ID3D11Resource) へのポインター。

[in] DstSubresource

型: UINT

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

[in, optional] pDstBox

型: const D3D11_BOX*

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

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

[in] pSrcData

型: const void*

メモリ内のソース データへのポインター。

[in] SrcRowPitch

型: UINT

ソース データの 1 行のサイズ。

[in] SrcDepthPitch

型: UINT

ソース データの 1 つの深度スライスのサイズ。

戻り値

なし

解説

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

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

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

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

要件

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

こちらもご覧ください

ID3D11Device3