Platform SDK: DirectX

IDirectDrawSurface7::UpdateOverlay

IDirectDrawSurface7::UpdateOverlay メソッドは、オーバーレイ サーフェスのビジュアル属性を再配置したり変更する。これらのサーフェスには、DDSCAPS_OVERLAY フラグを設定する必要がある。

HRESULT UpdateOverlay(
  LPRECT lpSrcRect,                      
  LPDIRECTDRAWSURFACE7 lpDDDestSurface,  
  LPRECT lpDestRect,                     
  DWORD dwFlags,                         
  LPDDOVERLAYFX lpDDOverlayFx            
);

パラメータ

lpSrcRect
オーバーレイとして使用される転送元サーフェスの領域の x、y、幅、および高さを定義する RECT 構造体のアドレス。このパラメータは、オーバーレイを隠蔽する場合や、オーバーレイ サーフェス全体を使用し、かつオーバーレイ サーフェスがデバイス ドライバからの境界およびサイズアライメント制限にも従うことを示す場合に、NULL とする。
lpDDDestSurface
オーバーレイが適用されるサーフェスの IDirectDrawSurface7 インターフェイスのアドレス。
lpDestRect
オーバーレイを移動する転送先サーフェスの領域の x、y、幅、および高さを定義する RECT 構造体のアドレス。このパラメータは、オーバーレイを隠蔽する場合に NULL となる。
dwFlags
以下のフラグが定義されている。
DDOVER_ADDDIRTYRECT
エミュレートされたオーバーレイ サーフェスにダーティー矩形を追加する。
DDOVER_ALPHADEST
廃止。
DDOVER_ALPHADESTCONSTOVERRIDE
このオーバーレイの転送先アルファ チャネルとして、DDOVERLAYFX 構造体の dwAlphaDestConst メンバを使用する。
DDOVER_ALPHADESTNEG
アルファ値の増加につれ、転送先サーフェスがより透明型となることを示す (0 は不透明)。
DDOVER_ALPHADESTSURFACEOVERRIDE
このオーバーレイの転送先アルファ チャネルとして、DDOVERLAYFX 構造体の lpDDSAlphaDest メンバを使用する。
DDOVER_ALPHAEDGEBLEND
カラー キー色との境にある、画像のエッジのアルファ チャネルとして、DDOVERLAYFX 構造体の dwAlphaEdgeBlend メンバを使用する。
DDOVER_ALPHASRC
このオーバーレイの転送元アルファ チャネルとして、ピクセル フォーマットのアルファ情報、または転送元サーフェスにアタッチされるアルファ チャネル サーフェスのいずれかを使用する。
DDOVER_ALPHASRCCONSTOVERRIDE
このオーバーレイの転送元アルファ チャネルとして、DDOVERLAYFX 構造体の dwAlphaSrcConst メンバを使用する。
DDOVER_ALPHASRCNEG
アルファ値の増加につれ、転送元サーフェスがより透明型になることを示す (0 は不透明)。
DDOVER_ALPHASRCSURFACEOVERRIDE
このオーバーレイの転送元アルファ チャネルとして、DDOVERLAYFX 構造体の lpDDSAlphaSrc メンバを使用する。
DDOVER_ARGBSCALEFACTORS
DirectX 7.0 で追加。DDOVERLAYFX 構造体が有効な ARGB スケーリング係数を含むことを示す。
DDOVER_AUTOFLIP
ビデオ ポート VSYNC が発生するたびに、フリッピング チェーンの次のサーフェスを自動的にフリップする。
DDOVER_BOB
インターレイス ビデオ ストリームの個々のフィールドを異常なく個別に表示する。
DDOVER_BOBHARDWARE
BOB 処理は、ソフトウェアまたはエミュレートではなく、ハードウェアを使用して実行される。このフラグは、DDOVER_BOB フラグと共に使用しなくてはならない。
DDOVER_DDFX
IpDDOverlayFx パラメータでオーバーレイ FX フラグを使い、特殊なオーバーレイ エフェクトを定義する。
DDOVER_DEGRADEARGBSCALING
DirectX 7.0 で追加。ARGB スケーリング係数は、ドライバ能力に適合するように下げられる場合がある。
DDOVER_HIDE
このオーバーレイをオフにする。
DDOVER_INTERLEAVED
サーフェス メモリは、インターリーブされたフィールドから成る。
DDOVER_KEYDEST
転送先サーフェスに関連付けられているカラー キーを使用する。
DDOVER_KEYDESTOVERRIDE
転送先サーフェスのカラー キーとして、DDOVERLAYFX 構造体の dckDestColorkey メンバを使用する。
DDOVER_KEYSRC
転送元サーフェスに関連付けられているカラー キーを使用する。
DDOVER_KEYSRCOVERRIDE
転送元サーフェスのカラー キー として、DDOVERLAYFX 構造体の dckSrcColorkey メンバを使用する。
DDOVER_OVERRIDEBOBWEAVE
BOB/WEAVE 決定を、ほかのインターフェイスでオーバーライドしてはならない。
DDOVER_REFRESHALL
エミュレートされたオーバーレイ サーフェスにサーフェス全体を再描画する。
DDOVER_REFRESHDIRTYRECTS
エミュレートされたオーバーレイ サーフェスにすべてのダーティー矩形を再描画する。
DDOVER_SHOW
このオーバーレイをオンにする。
lpDDOverlayFx
使用するエフェクトを記述する DDOVERLAYFX 構造体のアドレス。DDOVER_DDFX フラグを指定しない場合は NULL にできる。

戻り値

成功すれば、DD_OK を返す。

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

DDERR_DEVICEDOESNTOWNSURFACE
DDERR_GENERIC
DDERR_HEIGHTALIGN
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDRECT
DDERR_INVALIDSURFACETYPE
DDERR_NOSTRETCHHW
DDERR_NOTAOVERLAYSURFACE
DDERR_OUTOFCAPS
DDERR_SURFACELOST
DDERR_UNSUPPORTED
DDERR_XALIGN

動作環境

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