Platform SDK: DirectX

IDirectDrawSurface7::Blt

IDirectDrawSurface7::Blt メソッドは、ビット ブリット (ブロック転送) を実行する。このメソッドは、ブリット処理中に Z バッファまたはアルファ ブレンディング (アルファ チャネルを参照) をサポートしない。

HRESULT Blt(
  LPRECT lpDestRect,                    
  LPDIRECTDRAWSURFACE7 lpDDSrcSurface,  
  LPRECT lpSrcRect,                     
  DWORD dwFlags,                        
  LPDDBLTFX lpDDBltFx                   
);

パラメータ

lpDestRect
転送先サーフェス上にブリットする矩形の左上と右下の位置を定義する RECT 構造体のアドレス。このパラメータが NULL の場合、転送先サーフェス全体を使用する。
lpDDSrcSurface
ブリットの転送元である DirectDrawSurface オブジェクトの IDirectDrawSurface7 インターフェイスのアドレス。
lpSrcRect
転送元サーフェス上からブリットする矩形の左上と右下の位置を定義する RECT 構造体のアドレス。このパラメータが NULL の場合、転送元サーフェス全体を使用する。
dwFlags
カラーキー情報を指定する、またはメソッドから特別な動作を要求する、関連付けられた DDBLTFX 構造体の有効メンバを決定するフラグの組み合わせ。以下のフラグが定義されている。

評価フラグ

DDBLT_COLORFILL
転送先サーフェス上の転送先矩形を格納する RGB 色として DDBLTFX 構造体の dwFillColor メンバを使用する。
DDBLT_DDFX
このブリットに対して使用するエフェクトを指定する、DDBLTFX 構造体の dwDDFX メンバを使用する。
DDBLT_DDROPS
Microsoft® Win32® API の部分ではないラスタ処理 (ROPS) を指定する、DDBLTFX 構造体の dwDDROP メンバを使用する。
DDBLT_DEPTHFILL
転送先 Z バッファ サーフェス上の転送先矩形を格納する深度値として、DDBLTFX 構造体の dwFillDepth メンバを使用する。
DDBLT_KEYDESTOVERRIDE
転送先サーフェスのカラー キーとして DDBLTFX 構造体の ddckDestColorkey メンバを使用する。
DDBLT_KEYSRCOVERRIDE
転送元サーフェスのカラー キーとして DDBLTFX 構造体の ddckSrcColorkey メンバを使用する。
DDBLT_ROP
このブリットにおける ROP に DDBLTFX 構造体の dwROP メンバを使用する。これらの ROP は、Win32 API で定義されているものと同じである。
DDBLT_ROTATIONANGLE
サーフェスの回転角 (1/100 度単位で指定される) として DDBLTFX 構造体の dwRotationAngle メンバを使用する。

カラー キー フラグ

DDBLT_KEYDEST
転送先サーフェスに関連付けられたカラー キーを使用する。
DDBLT_KEYSRC
転送元サーフェスに関連付けられたカラー キーを使用する。

動作フラグ

DDBLT_ASYNC
受け取った順序でファーストイン、ファーストアウト (FIFO) ハードウェアから非同期的にこのブリットを実行する。FIFO ハードウェアの空き領域を利用できない場合、呼び出しは失敗する。
DDBLT_DONOTWAIT
DirectX 7.0 で追加。ブリットを実行せずに返す、またはブリットがビジーの場合に DDERR_WASSTILLDRAWING を返す。
DDBLT_WAIT
ブリットがビジーの場合、DDERR_WASSTILLDRAWING 戻り値をすぐに返さずに待機する。そして、ブリットがセット アップされるか、別のエラーが発生したら即座に返す。

廃止されサポートしないフラグ

All DDBLT_ALPHA flag values.
現時点では、実装されていない。
All DDBLT_ZBUFFER flag values
このメソッドは、z 対応のブリット処理を現在サポートしていない。"DDBLT_ZBUFFER" で始まるフラグは、DirectX のこのリリースではサポートしていない。
lpDDBltFx
DDBLTFX 構造体のアドレス。

戻り値

成功すれば、DD_OK を返す。

失敗すれば、以下のエラー値のいずれかを返す。

DDERR_GENERIC
DDERR_INVALIDCLIPLIST
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDRECT
DDERR_NOALPHAHW
DDERR_NOBLTHW
DDERR_NOCLIPLIST
DDERR_NODDROPSHW
DDERR_NOMIRRORHW
DDERR_NORASTEROPHW
DDERR_NOROTATIONHW
DDERR_NOSTRETCHHW
DDERR_NOZBUFFERHW
DDERR_SURFACEBUSY
DDERR_SURFACELOST
DDERR_UNSUPPORTED
DDERR_WASSTILLDRAWING

注意

このメソッドでは、同期または非同期のブリット (後者がデフォルト) を、ディスプレイ メモリ間、ディスプレイ メモリからシステム メモリへ、システム メモリからディスプレイ メモリへ、またはシステム メモリ間のいずれかで実行できる。ブリットは、転送元カラー キーおよび転送先カラー キーを使って実行される。転送元および転送先矩形のサイズが異なる場合は、任意の伸縮や収縮が行われる。

通常、ブリットがビジーの場合、またはブリットをセット アップできなかった場合、IDirectDrawSurface7::Blt はエラーと共に即座に返る。同期ブリットを要求するには、DDBLT_WAIT フラグを指定する。DDBLT_WAIT フラグを指定すると、ブリットがセット アップされるか、メソッドが返る前に別のエラーが発生するまで、このメソッドは待機する。

RECT 構造体は、right および bottom メンバが排他的であるように定義される。したがって、right から left を引くと矩形のと等しくなる。これは、矩形の幅より 1 だけ少ない値ではない。

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 98 が必要。
  ヘッダー : ddraw.h で宣言。