IDirectDrawSurface7::Blt 方法 (ddraw.h)

执行位块传输 (bitblt) 。 此方法在 bitblt 操作期间不支持 z 缓冲或 alpha 混合。

语法

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

参数

[in] unnamedParam1

指向 RECT 结构的指针,该结构定义在目标图面上要位到的矩形的左上角和右下角点。 如果此参数为 NULL,则使用整个目标图面。

[in] unnamedParam2

指向作为 bitblt 源的 DirectDrawSurface 对象的 IDirectDrawSurface7 接口的指针。

[in] unnamedParam3

指向 RECT 结构的指针,该结构定义矩形的左上角和右下角点,以便从源图面上进行位。 如果此参数为 NULL,则使用整个源图面。

[in] unnamedParam4

确定关联 DDBLTFX 结构的有效成员、指定颜色键信息或从 方法请求特殊行为的标志的组合。 定义了以下标志:

验证标志

DDBLT_COLORFILL

使用 DDBLTFX 结构的 dwFillColor 成员作为填充目标图面上目标矩形的 RGB 颜色。

DDBLT_DDFX

使用 DDBLTFX 结构的 dwDDFX 成员指定要用于此 bitblt 的效果。

DDBLT_DDROPS

使用 DDBLTFX 结构的 dwDDROP 成员指定不属于 Win32 API 的光栅操作 (ROPS) 。

DDBLT_DEPTHFILL

使用 DDBLTFX 结构的 dwFillDepth 成员作为深度值,用于填充目标 z 缓冲区图面上的目标矩形。

DDBLT_KEYDESTOVERRIDE

使用 DDBLTFX 结构的 ddckDestColorkey 成员作为目标图面的颜色键。

DDBLT_KEYSRCOVERRIDE

使用 DDBLTFX 结构的 ddckSrcColorkey 成员作为源图面的颜色键。

DDBLT_ROP

为此 bitblt 使用 ROP 的 DDBLTFX 结构的 dwROP 成员。 这些 RP 与 Win32 API 中定义的 IOPS 相同。

DDBLT_ROTATIONANGLE

使用 DDBLTFX 结构的 dwRotationAngle 成员作为旋转角度 (图面的 1/100 秒) 指定。

颜色键标志

DDBLT_KEYDEST

使用与目标图面关联的颜色键。

DDBLT_KEYSRC

使用与源图面关联的颜色键。

行为标志

DDBLT_ASYNC

按照接收的顺序,通过先入先出 (FIFO) 硬件异步执行此 bitblt。 如果 FIFO 硬件中没有可用空间,则调用将失败。

DDBLT_DONOTWAIT

返回不带位加密的 ,如果 bitbltter 正忙,也返回DDERR_WASSTILLDRAWING。

DDBLT_WAIT

如果 bitbltter 繁忙,则推迟DDERR_WASSTILLDRAWING返回值,并在可以设置 bitblt 或发生其他错误时立即返回 。

已过时和不支持的标志

所有DDBLT_ALPHA标志值

目前尚未实现。

所有DDBLT_ZBUFFER标志值

此方法当前不支持 z 感知 bitblt 操作。 不支持以“DDBLT_ZBUFFER”开头的标志。

[in] unnamedParam5

指向 bitblt 的 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

注解

Blt 可以执行同步或异步比特, (后者是默认行为) 。 从显示内存到显示内存、从显示内存到系统内存、从系统内存到显示内存,或从系统内存到系统内存,都可能出现这些位。 可以使用源颜色键和目标颜色键执行 bitblts。 如果源矩形和目标矩形的大小不同,则执行任意拉伸或收缩。

通常,如果 bitbltter 正忙且无法设置 bitblt,Blt 会立即返回错误。 指定DDBLT_WAIT标志以请求同步 bitblt。 如果包含 DDBLT_WAIT 标志, Blt 将等到可以设置 bitblt 或发生另一个错误后再返回。

定义 RECT 结构时,右侧成员和底部成员互斥,因此,右减左等于矩形的宽度,而不是小于宽度 1。

要求

要求
目标平台 Windows
标头 ddraw.h
Library Ddraw.lib
DLL Ddraw.dll

另请参阅

IDirectDrawSurface7