DD_BLTDATA structure

The DD_BLTDATA structure contains the information relevant to the driver for doing bit block transfers.

Syntax


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;
} DD_BLTDATA;

Members

lpDD

Points to a DD_DIRECTDRAW_GLOBAL structure that describes the driver's device.

lpDDDestSurface

Points to the DD_SURFACE_LOCAL structure that describes the surface on which to blit.

rDest
Specifies a RECTL structure that describes the upper left and lower right points of a rectangle on the destination surface. These points define the area in which the blit should occur and its position on the destination surface.
Microsoft DirectX 9.0 and later versions only.
On NT-based operating systems, when DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR is set in the dwFlags member, the value in rDest must not be used as the unclipped destination rectangular area. Instead, use values in bltFX to specify coordinates of the original unclipped destination rectangle.
lpDDSrcSurface

Points to a DD_SURFACE_LOCAL structure that describes the source surface.

rSrc
Specifies a RECTL structure that describes the upper left and lower right points of a rectangle on the source surface. These points define the area of the source blit data and its position on the source surface.
Microsoft DirectX 9.0 and later versions only.
On NT-based operating systems, when DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR is set in the dwFlags member, the value in rSrc is the original unclipped source rectangle. This is equivalent to the value in the rOrigSrc member for Microsoft Windows 98/Me operating systems.
dwFlags

Indicates a set of flags that specify the type of blit operation to perform and what associated structure members have valid data that the driver should use. This member is a bitwise OR of any of the following flags:

FlagMeaning

DDBLT_ASYNC

Perform this blit asynchronously through the FIFO in the order received. If no room exists in the hardware FIFO, the driver should fail the call and return immediately.

DDBLT_COLORFILL

Use the dwFillColor member in the DDBLTFX structure (defined in the Microsoft DirectDraw SDK documentation) as the RGB color with which to fill the destination rectangle on the destination surface.

DDBLT_DDFX

Use the dwDDFX member in the DDBLTFX structure (defined in the DirectDraw SDK documentation) to determine the effects to use for the blit.

DDBLT_DDROPS

This flag is reserved for system use and should be ignored by the driver. The driver should also ignore the dwDDROPS member of the DDBLTFX structure.

DDBLT_EXTENDED_FLAGS

Microsoft DirectX 9.0 and later versions only.
Set by the runtime to direct the driver to reinterpret certain flags in dwFlags from their meanings in DirectX 8.1 and earlier versions. The runtime combines DDBLT_EXTENDED_FLAGS with DDBLT_Xxx flags using a bitwise OR to create DDBLT_EXTENDED_Xxx flags.

DDBLT_EXTENDED_LINEAR_CONTENT

Microsoft DirectX 9.0 and later versions only.
Created through the bitwise OR combination of DDBLT_EXTENDED_FLAGS and the 0x00000004 bit.
Indicates that the source surface contains content in a linear color space. The driver can then perform gamma 2.2 correction (sRGB) to the desktop color space as part of the blt.

DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR

Microsoft DirectX 9.0 and later versions only.
NT-based operating systems only.
Created through the bitwise OR combination of DDBLT_EXTENDED_FLAGS and the 0x00000010 bit.
Set if the runtime subsequently uses the DDBLT_PRESENTATION and DDBLT_LAST_PRESENTATION flags to request a series of stretch-blit operations because of a Present call by an application.
Notifies the driver about the entire unclipped source and destination rectangular areas before the driver receives actual sub-rectangular areas for blits. In this way, the driver can calculate and record the stretch factor for all subsequent blits up to and including the blit with the DDBLT_LAST_PRESENTATION flag set. However, when the driver receives a blit with the DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR flag set, the driver must not use these unclipped rectangular areas to do any actual blitting.
After the driver finishes the final blit with the DDBLT_LAST_PRESENTATION flag set, the driver should clear the stretch-factor record to prevent interference with any subsequent blits
.

DDBLT_KEYDESTOVERRIDE

Use the dckDestColorkey member in the DDBLTFX structure (defined in the DirectDraw SDK documentation) as the color key for the destination surface. If an override is not being set, then dckDestColorkey does not contain the color key. The driver should test the surface itself.

DDBLT_KEYSRCOVERRIDE

Use the dckSrcColorkey member in the DDBLTFX structure (defined in the DirectDraw SDK documentation) as the color key for the source surface. If an override is not being set, then dckDestColorkey does not contain the color key. The driver should test the surface itself.

DDBLT_LAST_PRESENTATION

DirectX 8.0 and later versions only.
Set if the runtime requests a final blit operation because of a Present call by an application.

DDBLT_PRESENTATION

DirectX 8.0 and later versions only.
Set if the runtime requests a blit operation because of a Present call by an application.

DDBLT_ROP

Use the dwROP member in the DDBLTFX structure (defined in the DirectDraw SDK documentation) for the raster operation for this blit. Currently, the only ROP passed to the driver is SRCCOPY. This ROP is the same as that defined in the Win32 API. See the Microsoft Windows SDK documentation for details.

DDBLT_ROTATIONANGLE

This flag is not supported on Windows 2000 and later and should be ignored by the driver.

DDBLT_WAIT

Do not return immediately with the DDERR_WASSTILLDRAWING message if the blitter is busy--wait until the blit can be set up or another error occurs.

 

dwROPFlags

Unused on Windows 2000 and later and should be ignored by the driver.

bltFX
Specifies a DDBLTFX structure (defined in the DirectDraw SDK documentation) that contains override information for more complex blit operations. For example, the dwFillColor member is used for solid color fills, and the ddckSrcColorKey and ddckDestColorKey members are used for color key blits. The driver can determine which members of bltFX contain valid data by looking at the dwFlags member of the DD_BLTDATA structure. Note that the DDBLTFX_NOTEARING, DDBLTFX_MIRRORLEFTRIGHT, and DDBLTFX_MIRRORUPDOWN flags are unsupported on Windows 2000 and later and are never passed to the driver. For information about the DDBLTFX structure, see the Windows SDK documentation.
Microsoft DirectX 9.0 and later versions only.
On NT-based operating systems, when DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR is set in the dwFlags member, values in bltFX specify coordinates of the original unclipped destination rectangle. For more information about how these coordinates are specified, see Supporting Stretch Blit Operations. These coordinates are equivalent to those in the rOrigDest member for Windows 98/Me operating systems.
ddRVal

Specifies the location in which the driver writes the return value of the DdBlt callback. A return code of DD_OK indicates success. For more information, see Return Values for DirectDraw.

Blt

Used by the DirectDraw API and should not be filled in by the driver.

IsClipped

Indicates whether this is a clipped blit. On Windows 2000 and later, this member is always FALSE, indicating that the blit is unclipped.

rOrigDest

Unused for Windows 2000 and later. Specifies a RECTL structure that defines the unclipped destination rectangle. This member is valid only if IsClipped is TRUE.

rOrigSrc

Unused for Windows 2000 and later. Specifies a RECTL structure that defines the unclipped source rectangle. This member is valid only if IsClipped is TRUE.

dwRectCnt

Unused for Windows 2000 and later. Specifies the number of destination rectangles to which prDestRects points. This member is valid only if IsClipped is TRUE.

prDestRects

Unused for Windows 2000 and later. Points to an array of RECTL structures that describe of destination rectangles. This member is valid only if IsClipped is TRUE.

dwAFlags

Unused and should be ignored by the driver.

ddargbScaleFactors

ARGB scaling factors (AlphaBlt)

Remarks

For more information about the DDBLT_PRESENTATION and DDBLT_LAST_PRESENTATION flags, see Presentation.

Requirements

Header

Ddrawint.h (include Winddi.h)

See also

DdBlt

 

 

Send comments about this topic to Microsoft

Show: