BitBltFxBM
Copy a linear block of video memory to another location in video memory with optional effects and bus mastering.
Declaration
void NAPI GA_2DRenderFuncs::BitBltFxBM(
void *srcAddr,
N_int32 srcPhysAddr,
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,
GA_bltFx *fx)
Prototype In
snap/graphics.h
Parameters
srcAddr |
Address of source bitmap in system memory |
srcPhysAddr |
Physical address of source bitmap in system 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 |
fx |
GA_bltFx structure describing the requested effects |
Description
This function copies a bitmap from system memory with a physical starting address of srcPhysAddr to video memory with the optional features described in the GA_bltFx structure. Currently this function can perform stretching, source and destination transparency and flipping depending on what features the underlying hardware supports, with an optional mix code. This routine will copy the region (srcLeft, srcTop, srcLeft+srcWidth-1, srcTop+srcHeight-1) from the source bitmap to (dstLeft, dstTop, dstLeft+dstWidth-1, dstTop+dstHeight-1) in video memory. The srcPhysAddr value points to the start of the bitmap data in system memory as a physical memory address, not a linear memory address that the application software normally deals with. It is up to the calling application to use the necessary OS services to allocate a block of contiguous physical memory for the bitmap data, and to obtain the physical memory address to be passed into this function. Note that the source and destination rectangle dimensions may be different in, which is the case for doing a copy with bitmap stretching. If the GA_bltFx structure does not indicate stretching is in effect, the dstHeight and dstWidth parameters will be ignored and only the srcWidth and srcHeight parameters will be used.
This version is different to the BitBltFxSys function in that the bitmap data is copied using Bus Mastering by the graphics accelerator, which allows this function to return before the copy has completed and the accelerator will complete the copy in the background with a DMA Bus Master operation. If this hardware supports Bus Mastering and this function is available, it will usually be the fastest method to copy a block of system memory to video memory.
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 the memory bitmap.
Note: Some of the features may not be supported at the same time, and it is up to the application programmer to call the BitBltFxTest function to determine what features are supported before calling this function. Calling this function with an unsupported set of features will result in undefined behaviour.
See Also
BitBltFxTest, BitBltFx, BitBltFxLin, BitBltFxBM, SrcTransBlt, DstTransBlt, BitBlt
Copyright © 2002 SciTech Software, Inc. Visit our web site at http://www.scitechsoft.com