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 |