StretchBltBM

Copy a block of system memory to another location in video memory with stretching or shrinking and bus mastering.

Declaration

void NAPI GA_2DRenderFuncs::StretchBltBM(
    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,
    N_int32 doClip,
    N_int32 clipLeft,
    N_int32 clipTop,
    N_int32 clipRight,
    N_int32 clipBottom,
    N_int32 mix)

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

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 bitmap from system memory with a physical starting address of srcPhysAddr to video memory with either stretching or shrinking. 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 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 or shrinking.

This version is different to the StretchBltSys 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.

If the doClip parameter is true, then the output of the stretch function will be clipped against the passed in destination clip rectangle.

See Also

StretchBlt, StretchBltLin, StretchBltSys, SrcTransBlt, DstTransBlt, BitBlt

Copyright © 2002 SciTech Software, Inc. Visit our web site at http://www.scitechsoft.com