IDirectDrawSurface7::UpdateOverlay 方法 (ddraw.h)

重新定位或修改覆盖图面的视觉属性。 这些图面必须设置DDSCAPS_OVERLAY标志。

语法

HRESULT UpdateOverlay(
  [in] LPRECT               unnamedParam1,
  [in] LPDIRECTDRAWSURFACE7 unnamedParam2,
  [in] LPRECT               unnamedParam3,
  [in] DWORD                unnamedParam4,
  [in] LPDDOVERLAYFX        unnamedParam5
);

参数

[in] unnamedParam1

指向 RECT 结构的指针,该结构定义用作覆盖的源图面上的区域的 x、y、宽度和高度。 此参数可以为 NULL,以隐藏覆盖或指示将使用整个覆盖图面,并且覆盖图面符合设备驱动程序施加的任何边界和大小对齐限制。

[in] unnamedParam2

指向要叠加的 DirectDrawSurface 对象的 IDirectDrawSurface7 接口的指针。

[in] unnamedParam3

指向 RECT 结构的指针,该结构定义覆盖应移动到的目标图面上的区域的宽度、x 和高度(y)。 此参数可以为 NULL 以隐藏覆盖层。

[in] unnamedParam4

确定覆盖更新的以下标志的组合:

DDOVER_ADDDIRTYRECT

将脏矩形添加到模拟覆盖图面。

DDOVER_ALPHADEST

已过时。

DDOVER_ALPHADESTCONSTOVERRIDE

使用 DDOVERLAYFX 结构的 dwAlphaDestConst 成员作为此覆盖的目标 alpha 通道。

DDOVER_ALPHADESTNEG

指示当 alpha 值增加时,目标图面变得更加透明 (0 是不透明的) 。

DDOVER_ALPHADESTSURFACEOVERRIDE

使用 DDOVERLAYFX 结构的 lpDDSAlphaDest 成员作为此覆盖的 alpha 通道目标。

DDOVER_ALPHAEDGEBLEND

使用 DDOVERLAYFX 结构的 dwAlphaEdgeBlend 成员作为颜色键颜色边框的图像边缘的 alpha 通道。

DDOVER_ALPHASRC

使用像素格式的 alpha 信息或附加到源图面的 alpha 通道图面作为此覆盖的源 alpha 通道。

DDOVER_ALPHASRCCONSTOVERRIDE

使用 DDOVERLAYFX 结构的 dwAlphaSrcConst 成员作为此覆盖的源 alpha 通道。

DDOVER_ALPHASRCNEG

指示当 alpha 值增加 (0 不透明) ,源图面变得更加透明。

DDOVER_ALPHASRCSURFACEOVERRIDE

使用 DDOVERLAYFX 结构的 lpDDSAlphaSrc 成员作为此覆盖的 alpha 通道源。

DDOVER_ARGBSCALEFACTORS

DirectX 7.0 的新增功能。 指示 DDOVERLAYFX 结构包含有效的 ARGB 缩放因子。

DDOVER_AUTOFLIP

每次发生视频端口 VSYNC 时,自动翻转到翻转链中的下一个图面。

DDOVER_BOB

单独显示隔行扫描视频流的每个字段,不会导致显示任何项目。

DDOVER_BOBHARDWARE

Bob 操作通过使用硬件执行,而不是使用软件或模拟来执行。 此标志必须与 DDOVER_BOB 标志一起使用。

DDOVER_DDFX

使用 lpDDOverlayFx 参数中的覆盖 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

打开此覆盖。

[in] unnamedParam5

指向描述要使用的效果的 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
标头 ddraw.h
Library Ddraw.lib
DLL Ddraw.dll

另请参阅

IDirectDrawSurface7