DD_BLTDATA 结构 (ddrawint.h)

DD_BLTDATA 结构包含与执行位块传输的驱动程序相关的信息。

语法

typedef struct _DD_BLTDATA {
  PDD_DIRECTDRAW_GLOBAL lpDD;
  PDD_SURFACE_LOCAL     lpDDDestSurface;
  RECTL                 rDest;
  PDD_SURFACE_LOCAL     lpDDSrcSurface;
  RECTL                 rSrc;
  DWORD                 dwFlags;
  DWORD                 dwROPFlags;
  DDBLTFX               bltFX;
  HRESULT               ddRVal;
  VOID                  *Blt;
  BOOL                  IsClipped;
  RECTL                 rOrigDest;
  RECTL                 rOrigSrc;
  DWORD                 dwRectCnt;
  LPRECT                prDestRects;
  DWORD                 dwAFlags;
  DDARGB                ddargbScaleFactors;
} *PDD_BLTDATA, DD_BLTDATA;

成员

lpDD

指向描述驱动程序设备的 DD_DIRECTDRAW_GLOBAL 结构。

lpDDDestSurface

指向描述要启动的表面 的DD_SURFACE_LOCAL 结构。

rDest

lpDDSrcSurface

指向描述源图面的DD_SURFACE_LOCAL结构。

rSrc

dwFlags

指示一组标志,这些标志指定要执行的 blit 操作的类型以及哪些关联的结构成员具有驱动程序应使用的有效数据。 此成员是以下任意标志的按位 OR:

标志 含义
DDBLT_ASYNC 按接收的顺序通过 FIFO 异步执行此 blit。 如果硬件 FIFO 中不存在空间,驱动程序应使调用失败并立即返回。
DDBLT_COLORFILL 使用 DDBLTFX 结构中的 dwFillColor 成员, (在 Microsoft DirectDraw SDK 文档中定义) 作为填充目标图面上目标矩形的 RGB 颜色。
DDBLT_DDFX 使用 DirectDraw SDK 文档) 中定义的 DDBLTFX 结构 (中的 dwDDFX 成员来确定要用于 blit 的效果。
DDBLT_DDROPS 此标志保留供系统使用,驱动程序应忽略此标志。 驱动程序还应忽略 DDBLTFX 结构的 dwDDROPS 成员。
DDBLT_EXTENDED_FLAGS
仅限 Microsoft DirectX 9.0 及更高版本。
由运行时设置,以指示驱动程序从 dwFlags 中的某些标志在 DirectX 8.1 及更早版本中的含义重新解释。 运行时使用按位 OR 将 DDBLT_EXTENDED_FLAGS 与 DDBLT_Xxx 标志组合在一起,以创建 DDBLT_EXTENDED_Xxx 标志。
DDBLT_EXTENDED_LINEAR_CONTENT
仅限 Microsoft DirectX 9.0 及更高版本。
通过DDBLT_EXTENDED_FLAGS和0x00000004位的按位 OR 组合创建。
指示源图面包含线性颜色空间中的内容。 然后,驱动程序可以执行 gamma 2.2 更正 (sRGB) 桌面颜色空间作为 blt 的一部分。
DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR
仅限 Microsoft DirectX 9.0 及更高版本。
仅限基于 NT 的操作系统。
通过DDBLT_EXTENDED_FLAGS和0x00000010位的按位 OR 组合创建。
设置运行时是否随后使用 DDBLT_PRESENTATION 和 DDBLT_LAST_PRESENTATION 标志请求一系列 stretch-blit 操作,因为应用程序的 Present 调用。
在驱动程序收到 blits 的实际子矩形区域之前,通知驱动程序整个未剪切的源和目标矩形区域。 这样,驱动程序可以计算和记录所有后续 blit 的拉伸因子,包括设置了 DDBLT_LAST_PRESENTATION 标志的 blit。 但是,当驱动程序收到设置了DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR标志的 blit 时,驱动程序不得使用这些未剪切的矩形区域执行任何实际分切。
在驱动程序完成设置了DDBLT_LAST_PRESENTATION标志的最后 blit 后,驱动程序应清除拉伸因子记录,以防止干扰任何后续 blits
.
DDBLT_KEYDESTOVERRIDE 使用 DDBLTFX 结构中的 dckDestColorkey 成员, (DirectDraw SDK 文档中定义的 dckDestColorkey 成员) 作为目标图面的颜色键。 如果未设置替代,则 dckDestColorkey 不包含颜色键。 驱动程序应测试表面本身。
DDBLT_KEYSRCOVERRIDE 使用 DirectDraw SDK 文档中定义的 DDBLTFX 结构中的 dckSrcColorkey 成员 () 作为源图面的颜色键。 如果未设置替代,则 dckDestColorkey 不包含颜色键。 驱动程序应测试表面本身。
DDBLT_LAST_PRESENTATION
仅限 DirectX 8.0 及更高版本。
设置运行时是否由于应用程序的 Present 调用而请求最终 blit 操作。
DDBLT_PRESENTATION
仅限 DirectX 8.0 及更高版本。
设置运行时是否由于应用程序的 Present 调用而请求 blit 操作。
DDBLT_ROP 使用 DDBLTFX 结构中的 dwROP 成员, (DirectDraw SDK 文档) 为此 blit 的光栅操作定义。 目前,传递给驱动程序的唯一 ROP 是 SRCCOPY。 此 ROP 与 Win32 API 中定义的相同。 有关详细信息,请参阅Microsoft Windows SDK文档。
DDBLT_ROTATIONANGLE Windows 2000 及更高版本不支持此标志,驱动程序应忽略此标志。
DDBLT_WAIT 如果 blitter 处于繁忙状态,请不要立即返回带有DDERR_WASSTILLDRAWING消息--请等待,直到可以设置 blit 或发生其他错误。

dwROPFlags

在 Windows 2000 及更高版本上未使用,驱动程序应忽略。

bltFX

#########

#######

ddRVal

指定驱动程序写入 DdBlt 回调的返回值的位置。 返回代码DD_OK表示成功。 有关详细信息,请参阅 DirectDraw 的返回值

Blt

由 DirectDraw API 使用,不应由驱动程序填充。

IsClipped

指示这是否是已剪裁的 blit。 在 Windows 2000 及更高版本上,此成员始终为 FALSE,表示 blit 未拆分。

rOrigDest

未用于 Windows 2000 及更高版本。 指定一个 RECTL 结构,该结构定义未剪切的目标矩形。 仅当 IsClippedTRUE 时,此成员才有效。

rOrigSrc

未用于 Windows 2000 及更高版本。 指定一个 RECTL 结构,该结构定义未剪切的源矩形。 仅当 IsClippedTRUE 时,此成员才有效。

dwRectCnt

未用于 Windows 2000 及更高版本。指定 prDestRect 指向的目标矩形数。 仅当 IsClippedTRUE 时,此成员才有效。

prDestRects

未用于 Windows 2000 及更高版本。 指向描述目标矩形的 RECTL 结构的数组。 仅当 IsClippedTRUE 时,此成员才有效。

dwAFlags

驱动程序应忽略未使用 和 。

ddargbScaleFactors

arGB 缩放系数 (AlphaBlt)

注解

有关DDBLT_PRESENTATION和DDBLT_LAST_PRESENTATION标志的详细信息,请参阅 演示文稿

要求

要求
Header ddrawint.h (包括 Winddi.h)

另请参阅

DdBlt