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 |