ID3D10Device::CopyResource
GPU を使用して、コピー元リソースの内容全体をコピー先リソースにコピーします。
void
CopyResource(
ID3D10Resource *pDstResource,
ID3D10Resource *pSrcResource
);
パラメータ
- pDstResource
コピー先リソースへのポインターです (「ID3D10Resource」を参照してください)。 - pSrcResource
コピー元リソースへのポインターです (「ID3D10Resource」を参照してください)。
戻り値
何も返しません。
解説
このメソッドは、GPU がコピー処理を実行するという点で異例なメソッドです (CPU による memcpy に似ています)。このため、パフォーマンスの向上を目的とした制約がいくつか適用されます。たとえば、コピー元とコピー先のリソースに以下の制約が適用されます。
- 異なるリソースである必要があります。
- 同じ種類である必要があります。
- 次元 (幅、高さ、深度、サイズなど) が同じである必要があります。
- 単純なコピーのみが行われます。CopyResource では、引き伸ばし、カラー キー、ブレンド、フォーマット変換はサポートされません。
- フォーマットの互換性が必要です。言い換えると、フォーマットが同じであるか、少なくとも同じ種類のグループに属している必要があります。たとえば、DXGI_FORMAT_R32G32B32_FLOAT テクスチャーを DXGI_FORMAT_R32G32B32_UINT テクスチャーにコピーできますが、その理由は、この 2 つのフォーマットが DXGI_FORMAT_R32G32B32_TYPELESS グループに属しているためです。
- 現在はマップを行うことはできません。
固定リソース、および深度ステンシルリソースは、コピー先として使用できません。マルチサンプリング機能を使用して作成されたリソースは、コピー元、コピー先のいずれでも使用できません。
このメソッドは、コマンド バッファー キューへの追加が可能な非同期呼び出しです。データのコピー時に発生する可能性のあるパイプライン ストールの排除が試行されます。詳細については、「パフォーマンスに関する考慮事項」を参照してください。
リソースのデータの一部のみをコピーする必要があるアプリケーションでは、このメソッドではなく ID3D10Device::CopySubresourceRegion を使用してください。
Direct3D 10 と Direct3D 10.1 の違い Direct3D 10.1 では、深度ステンシル リソースおよびマルチサンプリングされたリソースをコピー元またはコピー先として使用できます。 事前に構造化され型が指定されたリソースと、ブロック圧縮されたテクスチャーとの間のコピーが可能です。「Direct3D 10.1 を使用したフォーマット変換」を参照してください。 |
要件
ヘッダー: D3D10.h 宣言
ライブラリ: D3D10.lib 内容