|
|
|
|
StretchBltLin
Copy a linear block of video memory to another location in video memory with stretching or shrinking.
Declaration
void NAPI GA_2DRenderFuncs::StretchBltLin(
N_int32 srcOfs,
N_int32 srcPitch,
N_int32 srcLeft,
N_int32 srcTop,
N_int32 srcWidth,
N_int32 srcHeight,
N_int32 dstLeft,
N_int32 dstTop,
N_int32 dstWidth,
N_int32 dstHeight,
N_int32 doClip,
N_int32 clipLeft,
N_int32 clipTop,
N_int32 clipRight,
N_int32 clipBottom,
N_int32 mix)
Prototype In
snap/graphics.h
Parameters
srcOfs |
Offset of source bitmap in video memory |
srcPitch |
Pitch of source bitmap in bytes |
srcLeft |
Left coordinate of the source rectangle to copy |
srcTop |
Top coordinate of the source rectangle to copy |
srcWidth |
Width of the source rectangle in pixels |
srcHeight |
Height of the source rectangle in scanlines |
dstLeft |
Left coordinate of destination |
dstTop |
Top coordinate of destination |
dstWidth |
Width of the destination rectangle in pixels |
dstHeight |
Height of the destination rectangle in scanlines |
doClip |
True if the blit should be clipped, false if not |
clipLeft |
Left coordinate for clip rectangle (inclusive) |
clipTop |
Top coordinate for clip rectangle (inclusive) |
clipRight |
Right coordinate for clip rectangle (exclusive) |
clipBottom |
Bottom coordinate for clip rectangle (exclusive) |
mix |
Mix code for the copy (GA_mixCodesType) |
Description
This function copies a linear region of video memory from one location to another with either stretching or shrinking. Note that the value of srcOfs must be aligned to the boundary specified in the BitmapStartAlign member of the GA_modeInfo structure, and the srcPitch value must be padded to multiples of the BitmapStridePad member of the GA_modeInfo structure. This routine will copy the rectangular region of video memory from (srcLeft, srcTop, srcLeft+srcWidth-1, srcTop+srcHeight-1) to (dstLeft, dstTop, dstLeft+dstWidth-1, dstTop+dstHeight-1) within video memory. Note that the source and destination rectangle dimensions may be different in, which is the case for doing a copy with bitmap stretching or shrinking. The results of this routine are undefined if the video memory regions overlap.
Note that the srcLeft and srcTop coordinates define an offset within the source bitmap to be copied, so it will copy only a portion of an offscreen bitmap. This is useful for storing multiple images in a single offscreen bitmap, or for handling the case of software clipping offscreen bitmaps if the destination lies outside of the software clip rectangle for the destination buffer.
This version is different to the standard BitBltFx function in that the source bitmap to be copied can be non-conforming, and can have a different logical scanline width to the destination bitmap. This allows the bitmaps to be stored contiguously in offscreen video memory, rather than requiring the offscreen video memory to be divided up into rectangular regions, resulting in more efficient use of available offscreen memory for bitmap storage.
If the doClip parameter is true, then the output of the stretch function will be clipped against the passed in destination clip rectangle.
Note: The value of srcOfs must be aligned to the boundary specified in the BitmapStartAlign member of the GA_modeInfo structure, and the dstPitch value must be padded to multiples of the BitmapStridePad member of the GA_modeInfo structure.
See Also
StretchBlt, StretchBltSys, StretchBltBM, SrcTransBlt, DstTransBlt, BitBlt
Copyright © 2002 SciTech Software, Inc. Visit our web site at http://www.scitechsoft.com