(C) 1998 AROS - The Amiga Research OS


NAME
#include <graphics/gfx.h>
#include <proto/graphics.h>

LONG BltBitMap (srcBitMap , xSrc , ySrc , destBitMap , xDest , yDest , xSize , ySize , minterm , mask , tempA)

LOCATION
In GfxBase at offset 5

SYNOPSIS
struct BitMap * srcBitMap
LONG xSrc
LONG ySrc
struct BitMap * destBitMap
LONG xDest
LONG yDest
LONG xSize
LONG ySize
ULONG minterm
ULONG mask
PLANEPTR tempA

FUNCTION
Moves a part of a bitmap around or into another bitmaps.

INPUTS
srcBitMap
Copy from this bitmap.
xSrc, ySrc
This is the upper left corner of the area to copy.
destBitMap
Copy to this bitmap. May be the same as srcBitMap.
xDest, yDest
Upper left corner where to place the copy
xSize, ySize
The size of the area to copy
minterm
How to copy. Most useful values are 0x00C0 for a vanilla copy, 0x0030 to invert the source and then copy or 0x0050 to ignore the source and just invert the destination. If you want to calculate other values, then you must know that channel A is set, if you are inside the rectangle, channel B is the source and channel C is the destination of the rectangle.

Bit ABC 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111

So 0x00C0 means: D is set if one is inside the rectangle (A is set) and B (the source) is set and cleared otherwise.

To fill the rectangle, you would want to set D when A is set, so the value is 0x00F0.

mask
Which planes should be copied. Typically, you should set this to ~0L.
tempA
If the copy overlaps exactly to the left or right (i.e. the
non
zero, it points to enough chip accessible memory to hold a line of a source for the blit (ie. CHIP RAM). BltBitMap will allocate (and free) the needed TempA if none is provided and one is needed. Blit overlap is determined from the relation of
non
masked planes in the source and destination bit maps.

RESULT
The number of planes actually involved in the blit.

EXAMPLE

SEE ALSO
ClipBlit(), BltBitMapRastPort()

NOTES
If a special hardware is available, this function will use it.

BUGS

INTERNALS

HISTORY
07.01.1999 bergers
Bugfix. Now layerstest works fine.
07.01.1999 bergers
Added output when clipping is done. Will be removed shortly...
06.01.1999 bergers
Fixed a bug when doing Amiga Amiga bitmap copying.
31.12.1998 nlorentz
If bitmap has BMF_AROS_DISPLAYED flag set, then let driver do the blit
20.10.1998 hkiel
Amiga Research OS
07.01.1998 digulla
depth wasn't initialized.
14.03.1997 digulla
Two new functions
13.03.1997 digulla
Another new function