IDirect3DDevice9::UpdateSurface
ピクセルの矩形のサブセットをあるサーフェスから別のサーフェスにコピーします。
HRESULT
UpdateSurface(
IDirect3DSurface9* pSourceSurface,
CONST RECT* pSourceRect,
IDirect3DSurface9* pDestinationSurface,
CONST POINT* pDestinationPoint
);
パラメータ
- pSourceSurface
ソース サーフェスを表す IDirect3DSurface9 インターフェイスへのポインターです。このパラメーターには、pDestinationSurface とは別のサーフェスを指定する必要があります。 - pSourceRect
ソース サーフェス上の矩形へのポインター。このパラメーターに NULL を指定すると、サーフェス全体がコピーされます。 - pDestinationSurface
IDirect3DSurface9 インターフェイスへのポインターです。デスティネーション サーフェスを表します。 - pDestinationPoint
デスティネーション矩形の左上隅へのポインターです。このパラメーターに NULL を指定すると、サーフェス全体がコピーされます。
戻り値
メソッドが成功した場合は、D3D_OK を返します。失敗した場合は、次の戻り値のいずれかを返します。D3DERR_INVALIDCALL
解説
このメソッドは DirectX 8 の CopyRects と同様です。
この関数には、以下の制限があります。
- ソース サーフェスは D3DPOOL_SYSTEMMEM を使用して作成されている必要があります。
- デスティネーション サーフェスは D3DPOOL_DEFAULT を使用して作成されている必要があります。
- いずれのサーフェスもロックできません。または未処理のデバイス コンテキストを保持できません。
- いずれのサーフェスもマルチサンプリングを使用して作成できません。両方のサーフェスに有効な唯一のフラグは D3DMULTISAMPLE_NONE です。
- サーフェス フォーマットは深度ステンシル フォーマットであってはなりません。
- ソースおよびデスティネーション矩形はサーフェス内に収まる必要があります。
- 拡大や縮小は許可されません (矩形は同じサイズである必要があります)。
- ソース フォーマットはデスティネーション フォーマットと一致する必要があります。
サポートされる組み合わせを以下の表に示します。
Dest フォーマット | |||||
---|---|---|---|---|---|
テクスチャー | RT テクスチャー | RT | オフスクリーン プレーン | ||
Src フォーマット | テクスチャー | 可 | 可 | 可* | 可 |
RT テクスチャー | 不可 | 不可 | 不可 | 不可 | |
RT | 不可 | 不可 | 不可 | 不可 | |
オフスクリーン プレーン | 可 | 可 | 可 | 可 |
* 要求されたコピーをドライバーがサポートしない場合、ロックとコピーを使用してエミュレートされます。
D3DPOOL_DEFAULT レンダー ターゲットから D3DPOOL_SYSTEMMEM サーフェスにデータをコピーする必要がある場合は、IDirect3DDevice9::GetRenderTargetData を使用できます。
要件
ヘッダー: D3D9.h 宣言
ライブラリ: D3D9.lib 内容