home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-09-02 | 127.4 KB | 4,597 lines |
- TABLE OF CONTENTS
-
- graphics.library/AddAnimOb
- graphics.library/AddBob
- graphics.library/AddFont
- graphics.library/AddVSprite
- graphics.library/AllocRaster
- graphics.library/AndRectRegion
- graphics.library/AndRegionRegion
- graphics.library/Animate
- graphics.library/AreaCircle
- graphics.library/AreaDraw
- graphics.library/AreaEllipse
- graphics.library/AreaEnd
- graphics.library/AreaMove
- graphics.library/AskFont
- graphics.library/AskSoftStyle
- graphics.library/AttemptLockLayerRom
- graphics.library/BitMapScale
- graphics.library/BltBitMap
- graphics.library/BltBitMapRastPort
- graphics.library/BltClear
- graphics.library/BltMaskBitMapRastPort
- graphics.library/BltPattern
- graphics.library/BltTemplate
- graphics.library/CBump
- graphics.library/CEND
- graphics.library/ChangeSprite
- graphics.library/CINIT
- graphics.library/ClearEOL
- graphics.library/ClearRectRegion
- graphics.library/ClearRegion
- graphics.library/ClearScreen
- graphics.library/ClipBlit
- graphics.library/CloseFont
- graphics.library/CloseMonitor
- graphics.library/CMOVE
- graphics.library/CopySBitMap
- graphics.library/CWAIT
- graphics.library/DisownBlitter
- graphics.library/DisposeRegion
- graphics.library/DoCollision
- graphics.library/Draw
- graphics.library/DrawEllipse
- graphics.library/DrawGList
- graphics.library/EraseRect
- graphics.library/ExtendFont
- graphics.library/FindDisplayInfo
- graphics.library/Flood
- graphics.library/FontExtent
- graphics.library/FreeColorMap
- graphics.library/FreeCopList
- graphics.library/FreeCprList
- graphics.library/FreeGBuffers
- graphics.library/FreeRaster
- graphics.library/FreeSprite
- graphics.library/FreeVPortCopLists
- graphics.library/GetColorMap
- graphics.library/GetDisplayInfoData
- graphics.library/GetGBuffers
- graphics.library/GetRGB4
- graphics.library/GetSprite
- graphics.library/GetVPModeID
- graphics.library/GfxAssociate
- graphics.library/GfxFree
- graphics.library/GfxLookUP
- graphics.library/GfxNew
- graphics.library/InitArea
- graphics.library/InitBitMap
- graphics.library/InitGels
- graphics.library/InitGMasks
- graphics.library/InitMasks
- graphics.library/InitRastPort
- graphics.library/InitTmpRas
- graphics.library/InitView
- graphics.library/InitVPort
- graphics.library/LoadRGB4
- graphics.library/LoadView
- graphics.library/LockLayerRom
- graphics.library/MakeVPort
- graphics.library/ModeNotAvailable
- graphics.library/Move
- graphics.library/MoveSprite
- graphics.library/MrgCop
- graphics.library/NewRegion
- graphics.library/NextDisplayInfo
- graphics.library/OpenFont
- graphics.library/OpenMonitor
- graphics.library/OrRectRegion
- graphics.library/OrRegionRegion
- graphics.library/OwnBlitter
- graphics.library/PolyDraw
- graphics.library/QBlit
- graphics.library/QBSBlit
- graphics.library/ReadPixel
- graphics.library/ReadPixelArray8
- graphics.library/ReadPixelLine8
- graphics.library/RectFill
- graphics.library/RemBob
- graphics.library/RemFont
- graphics.library/RemIBob
- graphics.library/RemVSprite
- graphics.library/ScalerDiv
- graphics.library/ScrollRaster
- graphics.library/ScrollVPort
- graphics.library/SetAPen
- graphics.library/SetBPen
- graphics.library/SetCollision
- graphics.library/SetDrMd
- graphics.library/SetFont
- graphics.library/SetOPen
- graphics.library/SetRast
- graphics.library/SetRGB4
- graphics.library/SetRGB4CM
- graphics.library/SetSoftStyle
- graphics.library/SortGList
- graphics.library/StripFont
- graphics.library/SyncSBitMap
- graphics.library/Text
- graphics.library/TextExtent
- graphics.library/TextFit
- graphics.library/TextLength
- graphics.library/UnlockLayerRom
- graphics.library/VBeamPos
- graphics.library/VideoControl
- graphics.library/WaitBlit
- graphics.library/WaitBOVP
- graphics.library/WaitTOF
- graphics.library/WeighTAMatch
- graphics.library/WritePixel
- graphics.library/WritePixelArray8
- graphics.library/WritePixelLine8
- graphics.library/XorRectRegion
- graphics.library/XorRegionRegion
- graphics.library/AddAnimOb graphics.library/AddAnimOb
-
- NAME
- AddAnimOb -- Add an AnimOb to the linked list of AnimObs.
-
- SYNOPSIS
- AddAnimOb(anOb, anKey, rp)
- A0 A1 A2
-
- void AddAnimOb(struct AnimOb *,struct AnimOb **, struct RastPort *);
-
- FUNCTION
- Links this AnimOb into the current list pointed to by animKey.
- Initializes all the Timers of the AnimOb's components.
- Calls AddBob with each component's Bob.
- rp->GelsInfo must point to an initialized GelsInfo structure.
-
- INPUTS
- anOb = pointer to the AnimOb structure to be added to the list
- anKey = address of a pointer to the first AnimOb in the list
- (anKey = NULL if there are no AnimObs in the list so far)
- rp = pointer to a valid RastPort
-
- RESULT
-
- BUGS
-
- SEE ALSO
- Animate() graphics/rastport.h graphics/gels.h
- graphics.library/AddBob graphics.library/AddBob
-
- NAME
- AddBob -- Adds a Bob to current gel list.
-
- SYNOPSIS
- AddBob(Bob, rp)
- A0 A1
-
- void AddBob(struct Bob *, struct RastPort *);
-
- FUNCTION
- Sets up the system Bob flags, then links this gel into the list
- via AddVSprite.
-
- INPUTS
- Bob = pointer to the Bob structure to be added to the gel list
- rp = pointer to a RastPort structure
-
- RESULT
-
- BUGS
-
- SEE ALSO
- InitGels() AddVSprite() graphics/gels.h graphics/rastport.h
-
- graphics.library/AddFont graphics.library/AddFont
-
- NAME
- AddFont -- add a font to the system list
-
- SYNOPSIS
- AddFont(textFont)
- A1
-
- void AddFont(struct TextFont *);
-
- FUNCTION
- This function adds the text font to the system, making it
- available for use by any application. The font added must be
- in public memory, and remain until successfully removed.
-
- INPUTS
- textFont - a TextFont structure in public ram.
-
- RESULT
-
- BUGS
-
- SEE ALSO
- SetFont() RemFont() graphics/text.h
-
- graphics.library/AddVSprite graphics.library/AddVSprite
-
- NAME
- AddVSprite -- Add a VSprite to the current gel list.
-
- SYNOPSIS
- AddVSprite(vs, rp)
- A0 A1
-
- void AddVSprite(struct VSprite *, struct RastPort *);
-
- FUNCTION
- Sets up the system VSprite flags
- Links this VSprite into the current gel list using its Y,X
-
- INPUTS
- vs = pointer to the VSprite structure to be added to the gel list
- rp = pointer to a RastPort structure
-
- RESULT
-
- BUGS
-
- SEE ALSO
- InitGels() graphics/rastport.h graphics/gels.h
-
- graphics.library/AllocRaster graphics.library/AllocRaster
-
- NAME
- AllocRaster -- Allocate space for a bitplane.
-
- SYNOPSIS
- planeptr = AllocRaster( width, height )
- d0 d0:16 d1:16
-
- PLANEPTR AllocRaster(UWORD,UWORD);
-
- FUNCTION
- This function calls the memory allocation routines
- to allocate memory space for a bitplane width bits
- wide and height bits high.
-
- INPUTS
- width - number of bits wide for bitplane
- height - number of rows in bitplane
-
- RESULT
- planeptr - pointer to first word in bitplane, or NULL if
- it was not possible to allocate the desired
- amount of memory.
- BUGS
-
- SEE ALSO
- FreeRaster() graphics/gfx.h
-
- graphics.library/AndRectRegion graphics.library/AndRectRegion
-
- NAME
- AndRectRegion -- Perform 2d AND operation of rectangle
- with region, leaving result in region.
-
- SYNOPSIS
- AndRectRegion(region,rectangle)
- a0 a1
-
- void AndRectRegion( struct Region *, struct Rectangle * );
-
- FUNCTION
- Clip away any portion of the region that exists outside
- of the rectangle. Leave the result in region.
-
- INPUTS
- region - pointer to Region structure
- rectangle - pointer to Rectangle structure
-
- NOTES
- Unlike the other rect-region primitives, AndRectRegion() cannot
- fail.
-
- BUGS
-
- SEE ALSO
- AndRegionRegion() OrRectRegion() graphics/regions.h
-
- graphics.library/AndRegionRegion graphics.library/AndRegionRegion
-
- NAME
- AndRegionRegion -- Perform 2d AND operation of one region
- with second region, leaving result in second region.
-
- SYNOPSIS
- status = AndRegionRegion(region1,region2)
- d0 a0 a1
-
- BOOL AndRegionRegion(struct Region *, struct Region * );
-
- FUNCTION
- Remove any portion of region2 that is not in region1.
-
- INPUTS
- region1 - pointer to Region structure
- region2 - pointer to Region structure to use and for result
-
- RESULTS
- status - return TRUE if successful operation
- return FALSE if ran out of memory
-
- BUGS
-
- SEE ALSO
- OrRegionRegion() AndRectRegion() graphics/regions.h
-
- graphics.library/Animate graphics.library/Animate
-
- NAME
- Animate -- Processes every AnimOb in the current animation list.
-
- SYNOPSIS
- Animate(anKey, rp)
- A0 A1
-
- void Animate(struct AnimOb **, struct RastPort *);
-
- FUNCTION
- For every AnimOb in the list
- - update its location and velocities
- - call the AnimOb's special routine if one is supplied
- - for each component of the AnimOb
- - if this sequence times out, switch to the new one
- - call this component's special routine if one is supplied
- - set the sequence's VSprite's y,x coordinates based
- on whatever these routines cause
-
- INPUTS
- ankey = address of the variable that points to the head AnimOb
- rp = pointer to the RastPort structure
-
- RESULT
-
- BUGS
-
- SEE ALSO
- AddAnimOb() graphics/gels.h graphics/rastport.h
-
- graphics.library/AreaCircle graphics.library/AreaCircle
-
- NAME
- AreaCircle -- add a circle to areainfo list for areafill.
-
-
- SYNOPSIS
- error = (int) AreaCircle( rp, cx, cy, radius)
- D0 A1 D0 D1 D2
-
- ULONG AreaCircle(struct RastPort *, WORD, WORD, UWORD);
-
- FUNCTION
- Add circle to the vector buffer. It will be drawn to the rastport when
- AreaEnd is executed.
-
- INPUTS
- rp - pointer to a RastPort structure
-
- cx, cy - the coordinates of the center of the desired circle.
-
- radius - is the radius of the circle to draw around the centerpoint.
-
- RESULTS
- 0 if no error
- -1 if no space left in vector list
-
- NOTES
- This function is actually a macro which calls
- AreaEllipse(rp,cx,cy,radius,radius).
-
- SEE ALSO
- AreaMove() AreaDraw() AreaCircle() InitArea() AreaEnd()
- graphics/rastport.h graphics/gfxmacros.h
-
- graphics.library/AreaDraw graphics.library/AreaDraw
-
- NAME
- AreaDraw -- Add a point to a list of end points for areafill.
-
-
- SYNOPSIS
- error = AreaDraw( rp, x, y)
- d0 A1 D0:16 D1:16
-
- ULONG AreaDraw( struct RastPort *, SHORT, SHORT);
-
- FUNCTION
- Add point to the vector buffer.
-
-
- INPUTS
- rp - points to a RastPort structure.
- x,y - are coordinates of a point in the raster.
-
- RESULT
- error - zero for success, else -1 if no there was no space
- left in the vector list.
-
- BUGS
-
- SEE ALSO
- AreaMove() InitArea() AreaEnd() graphics/rastport.h
-
-
- graphics.library/AreaEllipse graphics.library/AreaEllipse
-
- NAME
- AreaEllipse -- add a ellipse to areainfo list for areafill.
-
-
- SYNOPSIS
- error = AreaEllipse( rp, cx, cy, a, b )
- d0 a1 d0:16 d1:16 d2:16 d3:16
-
- LONG AreaEllipse( struct RastPort *, SHORT, SHORT, SHORT, SHORT)
-
- FUNCTION
- Add an ellipse to the vector buffer. It will be draw when AreaEnd() is
- called.
-
- INPUTS
- rp - pointer to a RastPort structure
- cx - x coordinate of the centerpoint relative to the rastport.
- cy - y coordinate of the centerpoint relative to the rastport.
- a - the horizontal radius of the ellipse (note: a must be > 0)
- b - the vertical radius of the ellipse (note: b must be > 0)
-
- RESULT
- error - zero for success, or -1 if there is no space left in the
- vector list
-
- SEE ALSO
- AreaMove() AreaDraw() AreaCircle() InitArea() AreaEnd()
- graphics/rastport.h
-
- graphics.library/AreaEnd graphics.library/AreaEnd
-
- NAME
- AreaEnd -- Process table of vectors and ellipses and produce areafill.
-
-
- SYNOPSIS
- error = AreaEnd(rp)
- d0 A1
-
- LONG AreaEnd( struct RastPort * );
-
- FUNCTION
- Trigger the filling operation.
- Process the vector buffer and generate required
- fill into the raster planes. After the fill is complete, reinitialize
- for the next AreaMove or AreaEllipse. Use the raster set up by
- InitTmpRas when generating an areafill mask.
-
- RESULT
- error - zero for success, or -1 if an error occured anywhere.
-
- INPUTS
- rp - pointer to a RastPort structure which specifies where the filled
- regions will be rendered to.
-
- BUGS
-
- SEE ALSO
- InitArea() AreaMove() AreaDraw() AreaEllipse() InitTmpRas()
- graphics/rastport.h
-
- graphics.library/AreaMove graphics.library/AreaMove
-
- NAME
- AreaMove -- Define a new starting point for a new
- shape in the vector list.
-
-
- SYNOPSIS
- error = AreaMove( rp, x, y)
- d0 a1 d0:16 d1:16
-
- LONG AreaMove( struct RastPort *, SHORT, SHORT );
-
- FUNCTION
- Close the last polygon and start another polygon
- at (x,y). Add the necessary points to vector
- buffer. Closing a polygon may result in the generation
- of another AreaDraw() to close previous polygon.
- Remember to have an initialized AreaInfo structure attached
- to the RastPort.
-
- INPUTS
- rp - points to a RastPort structure
- x,y - positions in the raster
-
- RETURNS
- error - zero for success, or -1 if there is no space left in the
- vector list
-
- BUGS
-
- SEE ALSO
- InitArea() AreaDraw() AreaEllipse() AreaEnd() graphics/rastport.h
-
-
- graphics.library/AskFont graphics.library/AskFont
-
- NAME
- AskFont -- get the text attributes of the current font
-
- SYNOPSIS
- AskFont(rp, textAttr)
- A1 A0
-
- void AskFont(struct RastPort *, struct TextAttr *);
-
- FUNCTION
- This function fills the text attributes structure with the
- attributes of the current font in the RastPort.
-
- INPUTS
- rp - the RastPort from which the text attributes are
- extracted
- textAttr - the TextAttr structure to be filled. Note that
- there is no support for a TTextAttr.
-
- RESULT
- The textAttr structure is filled with the RastPort's text
- attributes.
-
- BUGS
-
- SEE ALSO
- graphics/text.h
-
- graphics.library/AskSoftStyle graphics.library/AskSoftStyle
-
- NAME
- AskSoftStyle -- Get the soft style bits of the current font.
-
- SYNOPSIS
- enable = AskSoftStyle(rp)
- D0 A1
-
- ULONG AskSoftStyle(struct RastPort *);
-
- FUNCTION
- This function returns those style bits of the current font
- that are not intrinsic in the font itself, but
- algorithmically generated. These are the bits that are
- valid to set in the enable mask for SetSoftStyle().
-
- INPUTS
- rp - the RastPort from which the font and style are extracted.
-
- RESULTS
- enable - those bits in the style algorithmically generated.
- Style bits that are not defined are also set.
-
- BUGS
-
- SEE ALSO
- SetSoftStyle() graphics/text.h
-
- graphics.library/AttemptLockLayerRom graphics.library/AttemptLockLayerRom
- *
- NAME
- AttemptLockLayerRom -- Attempt to Lock Layer structure
- by rom(gfx lib) code
-
- SYNOPSIS
- gotit = AttemptLockLayerRom( layer )
- d0 a5
-
- BOOL AttempLockLayerRom( struct Layer * );
-
- FUNCTION
- Query the current state of the lock on this Layer. If it is
- already locked then return FALSE, could not lock. If the
- Layer was not locked then lock it and return TRUE.
- This call does not destroy any registers.
- This call nests so that callers in this chain will not lock
- themselves out.
-
- INPUTS
- layer - pointer to Layer structure
-
- RESULT
- gotit - TRUE or FALSE depending on whether the Layer was
- successfully locked by the caller.
-
- SEE ALSO
- LockLayerRom() UnlockLayerRom()
-
- graphics.library/BitMapScale graphics.library/BitMapScale
-
- NAME
- BitMapScale -- Perform raster scaling on a bit map. (V36)
-
- SYNOPSIS
- BitMapScale(bitScaleArgs)
- A0
-
- void BitMapScale(struct BitScaleArgs *);
-
- FUNCTION
- Scale a source bit map to a non-overlapping destination
- bit map.
-
- INPUTS
- bitScaleArgs - structure of parameters describing scale:
- bsa_SrcX, bsa_SrcY - origin of the source bits.
- bsa_SrcWidth, bsa_SrcHeight - number of bits to scale from in x
- and y.
- bsa_DestX, bsa_DestY - origin of the destination.
- bsa_DestWidth, bsa_DestHeight - resulting number of bits in x
- and y. NOTE: these values are set by this function.
- bsa_XSrcFactor:bsa_XDestFactor - equivalant to the ratio
- srcWidth:destWidth, but not necessarily the same
- numbers. Each must be in the range 1..16383.
- bsa_YSrcFactor:bsa_YDestFactor - equivalant to the ratio
- srcHeight:destHeight, but not necessarily the same
- numbers. Each must be in the range 1..16383.
- bsa_SrcBitMap - source of the bits to scale.
- bsa_DestBitMap - destination for the bits to scale. This had
- better be big enough!
- bsa_Flags - future scaling options. Set it to zero!
- bsa_XDDA, bsa_YDDA - for future use. Need not be set by user.
- bsa_Reserved1, bsa_Reserved2 - for future use. Need not be set.
-
- RESULT
- The destWidth, destHeight fields are set by this function as
- described above.
-
- NOTES
- o This function may use the blitter.
- o Overlapping source and destination bit maps are not
- supported.
- o No check is made to ensure destBitMap is big enough: use
- ScalerDiv to calculate a destination dimension.
-
- BUGS
- o This function does not use the HighRes Agnus 'Big Blit'
- facility. You should not use XSrcFactor == XDestFactor,
- where SrcWidth or DestWidth > 1024.
-
- o Also, the blitter is used when expanding in the Y direction.
- You should not expand in the Y direction if
- ((DestX & 0xf) + DestWidth) >= 1024 pixels. (Up to 1008 pixels
- is always safe).
-
- SEE ALSO
- ScalerDiv() graphics/scale.h
-
- graphics.library/BltBitMap graphics.library/BltBitMap
-
- NAME
- BltBitMap -- Move a rectangular region of bits in a BitMap.
-
- SYNOPSIS
- planecnt = BltBitMap(SrcBitMap, SrcX, SrcY, DstBitMap,
- D0 A0 D0:16 D1:16 A1
- DstX, DstY, SizeX, SizeY, Minterm, Mask [, TempA])
- D2:16 D3:16 D4:16 D5:16 D6:8 D7:8 [A2]
-
- ULONG BltBitMap(struct BitMap *, WORD, WORD, struct BitMap *,
- WORD, WORD, WORD, WORD, UBYTE, UBYTE, UWORD *);
-
- FUNCTION
- Perform non-destructive blits to move a rectangle from one
- area in a BitMap to another area, which can be on a different
- BitMap.
- This blit is assumed to be friendly: no error conditions (e.g.
- a rectangle outside the BitMap bounds) are tested or reported.
-
- INPUTS
- SrcBitMap, DstBitMap - the BitMap(s) containing the
- rectangles
- - the planes copied from the source to the destination are
- only those whose plane numbers are identical and less
- than the minimum Depth of either BitMap and whose Mask
- bit for that plane is non-zero.
- - as a special case, if a plane pointer in the SrcBitMap
- is zero, it acts as a pointer to a plane of all zeros, and
- if the plane pointer is 0xffffffff, it acts as a pointer
- to a plane of all ones. (Note: new for V36)
- - SrcBitMap and DstBitMap can be identical if they point
- to actual planes.
- SrcX, SrcY - the x and y coordinates of the upper left corner
- of the source rectangle. Valid range is positive
- signed integer such that the raster word's offset
- 0..(32767-Size)
- DstX, DstY - the x and y coordinates of the upper left
- corner of the destination for the rectangle. Valid
- range is as for Src.
- SizeX, SizeY - the size of the rectangle to be moved. Valid
- range is (X: 1..976; Y: 1..1023 such that final raster
- word's offset is 0..32767)
- Minterm - the logic function to apply to the rectangle when
- A is non-zero (i.e. within the rectangle). B is the
- source rectangle and C, D is the destination for the
- rectangle.
- - $0C0 is a vanilla copy
- - $030 inverts the source before the copy
- - $050 ignores the source and inverts the destination
- - see the hardware reference manual for other combinations
- Mask - the write mask to apply to this operation. Bits set
- indicate the corresponding planes (if not greater than
- the minimum plane count) are to participate in the
- operation. Typically this is set to 0xff.
- TempA - If the copy overlaps exactly to the left or right
- (i.e. the scan line addresses overlap), and TempA is
- non-zero, it points to enough chip accessable memory
- to hold a line of A source for the blit (ie CHIP RAM).
- BitBitMap will allocate (and free) the needed TempA if
- none is provided and one is needed. Blit overlap is
- determined from the relation of the first non-masked
- planes in the source and destination bit maps.
-
- RESULTS
- planecnt - the number of planes actually involved in the blit.
-
- NOTES
- o This function may use the blitter.
-
- SEE ALSO
- ClipBlit() graphics/gfx.h hardware/blit.h
-
- graphics.library/BltBitMapRastPort graphics.library/BltBitMapRastPort
-
- NAME
- BltBitMapRastPort -- Blit from source bitmap to destination rastport.
-
- SYNOPSIS
- error = BltBitMapRastPort
- (srcbm, srcx, srcy, destrp, destX, destY, sizeX, sizeY, minterm)
- D0 A0 D0 D1 A1 D2 D3 D4 D5 D6
-
- BOOL BltBitMapRastPort
- (struct BitMap *, WORD, WORD, struct RastPort *, WORD, WORD,
- WORD, WORD, UBYTE);
-
- FUNCTION
- Blits from source bitmap to position specified in destination rastport
- using minterm.
-
- INPUTS
- srcbm - a pointer to the source bitmap
- srcx - x offset into source bitmap
- srcy - y offset into source bitmap
- destrp - a pointer to the destination rastport
- destX - x offset into dest rastport
- destY - y offset into dest rastport
- sizeX - width of blit in pixels
- sizeY - height of blit in rows
- minterm - minterm to use for this blit
-
- RESULT
- TRUE
-
- BUGS
-
- SEE ALSO
- BltMaskBitMapRastPort() graphics/gfx.h graphics/rastport.h
-
- graphics.library/BltClear graphics.library/BltClear
-
- NAME
-
- BltClear - Clear a block of memory words to zero.
-
- SYNOPSIS
- BltClear( memBlock, bytecount, flags )
- a1 d0 d1
-
- void BltClear( void *, ULONG, ULONG );
-
- FUNCTION
- For memory that is local and blitter accessable, the most
- efficient way to clear a range of memory locations is
- to use the system's most efficient data mover, the blitter.
- This command accepts the starting location and count and clears
- that block to zeros.
-
- INPUTS
- memBloc - pointer to local memory to be cleared
- memBlock is assumed to be even.
- flags - set bit 0 to force function to wait until
- the blit is done.
- set bit 1 to use row/bytesperrow.
-
- bytecount - if (flags & 2) == 0 then
- even number of bytes to clear.
- else
- low 16 bits is taken as number of bytes
- per row and upper 16 bits taken as
- number of rows.
-
- This function is somewhat hardware dependant. In the rows/bytesperrow
- mode (with the pre-ECS blitter) rows must be <- 1024. In bytecount mode
- multiple runs of the blitter may be used to clear all the memory.
-
- Set bit 2 to use the upper 16 bits of the Flags as the data to fill
- memory with instead of 0 (V36).
-
- RESULT
- The block of memory is initialized.
-
- BUGS
-
- SEE ALSO
-
- graphics.library/BltMaskBitMapRastPort graphics.library/BltMaskBitMapRastPort
-
- NAME
- BltMaskBitMapRastPort -- blit from source bitmap to destination rastport
- with masking of source image.
-
- SYNOPSIS
- BltMaskBitMapRastPort
- (srcbm, srcx, srcy, destrp, destX, destY, sizeX, sizeY,
- A0 D0 D1 A1 D2 D3 D4 D5
- minterm, bltmask)
- D6 A2
-
- void BltMaskBitMapRastPort
- (struct BitMap *, WORD, WORD, struct RastPort *, WORD, WORD,
- WORD, WORD, UBYTE, APTR);
-
- FUNCTION
- Blits from source bitmap to position specified in destination rastport
- using bltmask to determine where source overlays destination, and
- minterm to determine whether to copy the source image "as is" or
- to "invert" the sense of the source image when copying. In either
- case, blit only occurs where the mask is non-zero.
-
- INPUTS
- srcbm - a pointer to the source bitmap
- srcx - x offset into source bitmap
- srcy - y offset into source bitmap
- destrp - a pointer to the destination rastport
- destX - x offset into dest rastport
- destY - y offset into dest rastport
- sizeX - width of blit in pixels
- sizeY - height of blit in rows
- minterm - either (ABC|ABNC|ANBC) if copy source and blit thru mask
- or (ANBC) if invert source and blit thru mask
- bltmask - pointer to the single bit-plane mask, which must be the
- same size and dimensions as the planes of the
- source bitmap.
-
- RESULT
-
- BUGS
-
- SEE ALSO
- BltBitMapRastPort() graphics/gfx.h graphics/rastport.h
-
- graphics.library/BltPattern graphics.library/BltPattern
-
- NAME
- BltPattern -- Using standard drawing rules for areafill,
- blit through a mask.
-
- SYNOPSIS
- BltPattern(rp, mask, xl, yl, maxx, maxy, bytecnt)
- a1, a0 d0 d1 d2 d3 d4
-
- void BltPattern
- (struct RastPort *, void *, SHORT, SHORT, SHORT, SHORT, SHORT);
-
- FUNCTION
- Blit using drawmode,areafill pattern, and mask
- at position rectangle (xl,yl) (maxx,maxy).
-
- INPUTS
- rp - points to the destination RastPort for the blit.
- mask - points to 2 dimensional mask if needed
- if mask == NULL then use a rectangle.
- xl,yl - coordinates of upper left of rectangular region in RastPort
- maxx,maxy - points to lower right of rectangular region in RastPort
- bytecnt - BytesPerRow for mask
-
- RESULT
-
- SEE ALSO
- AreaEnd
-
- graphics.library/BltTemplate graphics.library/BltTemplate
-
- NAME
- BltTemplate -- Cookie cut a shape in a rectangle to the RastPort.
-
- SYNOPSIS
- BltTemplate(SrcTemplate, SrcX, SrcMod, rp,
- A0 D0:16 D1:16 A1
- DstX, DstY, SizeX, SizeY)
- D2:16 D3:16 D4:16 D5:16
-
- void BltTemplate(UWORD *, WORD, WORD, struct RastPort *,
- WORD, WORD, WORD, WORD);
-
- FUNCTION
- This function draws the image in the template into the
- RastPort in the current color and drawing mode at the
- specified position. The template is assumed not to overlap
- the destination.
- If the template falls outside the RastPort boundary, it is
- truncated to that boundary.
-
- Note: the SrcTemplate pointer should point to the "nearest" word
- (rounded down) of the template mask. Fine alignment of the mask
- is acheived by setting the SrcX bit offseet within the range
- of 0 to 15 decimal.
-
- INPUTS
- SrcTemplate - pointer to the first (nearest) word of the template mask.
- SrcX - x bit offset into the template mask (range 0..15).
- SrcMod - number of bytes per row in template mask.
- rp - pointer to destination RastPort.
- DstX, DstY - x and y coordinates of the upper left
- corner of the destination for the blit.
- SizeX, SizeY - size of the rectangle to be used as the
- template.
-
- NOTES
- o This function may use the blitter.
-
- SEE ALSO
- BltBitMap() graphics/rastport.h
-
- graphics.library/CBump graphics.library/CBump
- NAME
- CBump - increment user copper list pointer (bump to next position in list).
-
- SYNOPSIS
- CBump( c )
- a1
-
- void CBump( struct UCopList * );
-
- FUNCTION
- Increment pointer to space for next instruction in user copper list.
-
- INPUTS
- c - pointer to UCopList structure
-
- RESULTS
- User copper list pointer is incremented to next position.
- Pointer is repositioned to next user copperlist instruction block
- if the current block is full.
-
- Note: CBump is usually invoked for the programmer as part of the
- macro definitions CWAIT or CMOVE.
-
- BUGS
-
- SEE ALSO
- CINIT CWAIT CMOVE CEND graphics/copper.h
- graphics.library/CEND graphics.library/CEND
- NAME
- CEND -- Terminate user copper list.
-
- SYNOPSIS
- CEND( c )
-
- struct UCopList *c;
-
- FUNCTION
- Add instruction to terminate user copper list.
-
- INPUTS
- c - pointer to UCopList structure
-
- RESULTS
- This is actually a macro that calls the macro CWAIT(c,10000,255)
- 10000 is a magical number that the graphics.library uses.
- I hope display technology doesn't catch up too fast!
-
- BUGS
-
- SEE ALSO
- CINIT CWAIT CMOVE graphics/copper.h
- graphics.library/ChangeSprite graphics.library/ChangeSprite
-
- NAME
- ChangeSprite -- Change the sprite image pointer.
-
- SYNOPSIS
- ChangeSprite( vp, s, newdata)
- a0 a1 a2
-
- void ChangeSprite(struct ViewPort *, struct SimpleSprite *, void * )
-
- FUNCTION
- The sprite image is changed to use the data starting at newdata
-
- INPUTS
- vp - pointer to ViewPort structure that this sprite is
- relative to, or 0 if relative only top of View
- s - pointer to SimpleSprite structure
- newdata - pointer to data structure of the following form.
- struct spriteimage
- {
- UWORD posctl[2]; /* used by simple sprite machine*/
- UWORD data[height][2]; /* actual sprite image */
- UWORD reserved[2]; /* initialized to */
- /* 0x0,0x0 */
- };
- The programmer must initialize reserved[2]. Spriteimage must be
- in CHIP memory. The height subfield of the SimpleSprite structure
- must be set to reflect the height of the new spriteimage BEFORE
- calling ChangeSprite(). The programmer may allocate two sprites to
- handle a single attached sprite. After GetSprite(), ChangeSprite(),
- the programmer can set the SPRITE_ATTACHED bit in posctl[1] of the
- odd numbered sprite.
- If you need more than 8 sprites, look up VSprites in the
- graphics documentation.
-
- RESULTS
-
- BUGS
-
- SEE ALSO
- FreeSprite() ChangeSprite() MoveSprite() AddVSprite() graphics/sprite.h
-
- graphics.library/CINIT graphics.library/CINIT
-
- NAME
- CINIT -- Initialize user copperlist to accept intermediate
- user copper instructions.
-
- SYNOPSIS
- cl = CINIT( ucl , n )
-
- cl = UCopperListInit( ucl , n )
- a0 d0
-
- struct CopList *UCopperListInit( struct UCopList *, UWORD );
-
- FUNCTION
- Allocates and/or initialize copperlist structures/buffers
- internal to a UCopList structure.
-
- This is a macro that calls UCopListInit. You must pass a
- (non-initialized) UCopList to CINIT (CINIT will NOT allocate
- a new UCopList if ucl==0 ). If (ucl != 0) it will initialize the
- intermediate data buffers internal to a UCopList.
-
- The maximum number of intermediate copper list instructions
- that these internal CopList data buffers contain is specified
- as the parameter n.
-
- INPUTS
- ucl - pointer to UCopList structure
- n - number of instructions buffer must be able to hold
-
- RESULTS
- cl- a pointer to a buffer which will accept n intermediate copper
- instructions.
-
- NOTE: this is NOT a UCopList pointer, rather a pointer to the
- UCopList's->FirstCopList sub-structure.
-
- BUGS
- CINIT will not actually allocate a new UCopList if ucl==0.
- Instead you must allocate a block MEMF_PUBLIC|MEMF_CLEAR, the
- sizeof(struct UCopList) and pass it to this function.
-
- The system's FreeVPortCopLists function will take care of
- deallocating it if they are called.
-
- Prior to release V36 the CINIT macro had { } braces surrounding
- the definition, preventing the proper return of the result value.
- These braces have been removed for the V36 include definitions.
-
- SEE ALSO
- CINIT CMOVE CEND graphics/copper.h
-
- graphics.library/ClearEOL graphics.library/ClearEOL
-
- NAME
- ClearEOL -- Clear from current position to end of line.
-
- SYNOPSIS
- ClearEOL(rp)
- A1
-
- void ClearEOL(struct RastPort *);
-
- FUNCTION
- Clear a rectangular swath from the current position to the
- right edge of the rastPort. The height of the swath is taken
- from that of the current text font, and the vertical
- positioning of the swath is adjusted by the text baseline,
- such that text output at this position would lie wholly on
- this newly cleared area.
- Clearing consists of setting the color of the swath to zero,
- or, if the DrawMode is 2, to the BgPen.
-
- INPUTS
- rp - pointer to RastPort structure
-
- RESULT
-
- NOTES
- o This function may use the blitter.
-
- SEE ALSO
- Text() ClearScreen() SetRast()
- graphics/text.h graphics/rastport.h
-
- graphics.library/ClearRectRegion graphics.library/ClearRectRegion
-
- NAME
- ClearRectRegion -- Perform 2d CLEAR operation of rectangle
- with region, leaving result in region.
-
- SYNOPSIS
- status = ClearRectRegion(region,rectangle)
- d0 a0 a1
-
- BOOL ClearRectRegion(struct Region *, struct Rectangle * );
-
- FUNCTION
- Clip away any portion of the region that exists inside
- of the rectangle. Leave the result in region.
-
- INPUTS
- region - pointer to Region structure
- rectangle - pointer to Rectangle structure
-
- RESULTS
- status - return TRUE if successful operation
- return FALSE if ran out of memory
-
- BUGS
-
- SEE ALSO
- AndRectRegion() graphics/regions.h
-
- graphics.library/ClearRegion graphics.library/ClearRegion
-
- NAME
- ClearRegion -- Remove all rectangles from region.
-
- SYNOPSIS
- ClearRegion(region)
- a0
-
- void ClearRegion( struct Region * );
-
- FUNCTION
- Clip away all rectangles in the region leaving nothing.
-
- INPUTS
- region - pointer to Region structure
-
- BUGS
-
- SEE ALSO
- NewRegion() graphics/regions.h
-
- graphics.library/ClearScreen graphics.library/ClearScreen
-
- NAME
- ClearScreen -- Clear from current position to end of RastPort.
-
- SYNOPSIS
- ClearScreen(rp)
- A1
-
- void ClearScreen(struct RastPort *);
-
- FUNCTION
- Clear a rectangular swath from the current position to the
- right edge of the rastPort with ClearEOL, then clear the rest
- of the screen from just beneath the swath to the bottom of
- the rastPort.
- Clearing consists of setting the color of the swath to zero,
- or, if the DrawMode is 2, to the BgPen.
-
- INPUTS
- rp - pointer to RastPort structure
-
- NOTES
- o This function may use the blitter.
-
- SEE ALSO
- ClearEOL() Text() SetRast()
- graphics/text.h graphics/rastport.h
-
- graphics.library/ClipBlit graphics.library/ClipBlit
-
- NAME
- ClipBlit -- Calls BltBitMap() after accounting for windows
-
- SYNOPSIS
- ClipBlit(Src, SrcX, SrcY, Dest, DestX, DestY, XSize, YSize, Minterm)
- A0 D0 D1 A1 D2 D3 D4 D5 D6
-
- void ClipBlit
- (struct RastPort *, WORD, WORD, struct RastPort *, WORD, WORD,
- WORD, WORD, UBYTE);
-
- FUNCTION
- Performs the same function as BltBitMap(), except that it
- takes into account the Layers and ClipRects of the layer library,
- all of which are (and should be) transparent to you. So, whereas
- BltBitMap() requires pointers to BitMaps, ClipBlit requires pointers to
- the RastPorts that contain the Bitmaps, Layers, etcetera.
-
- If you are going to blit blocks of data around via the RastPort of your
- Intuition Window, you must call this routine (rather than BltBitMap()).
-
- Either the Src RastPort, the Dest RastPort, both, or neither, can have
- Layers. This routine takes care of all cases.
-
- See BltBitMap() for a thorough explanation.
-
- INPUTS
- Src = pointer to the RastPort of the source for your blit
- SrcX, SrcY = the topleft offset into Src for your data
- Dest = pointer to the RastPort to receive the blitted data
- DestX, DestY = the topleft offset into the destination RastPort
- XSize = the width of the blit
- YSize = the height of the blit
- Minterm = the boolean blitter function, where SRCB is associated
- with the Src RastPort and SRCC goes to the Dest RastPort
-
- RESULT
-
- BUGS
-
- SEE ALSO
- BltBitMap();
-
- graphics.library/CloseFont graphics.library/CloseFont
-
- NAME
- CloseFont -- Release a pointer to a system font.
-
- SYNOPSIS
- CloseFont(font)
- A1
-
- void CloseFont(struct TextFont *);
-
- FUNCTION
- This function indicates that the font specified is no longer
- in use. It is used to close a font opened by OpenFont, so
- that fonts that are no longer in use do not consume system
- resources.
-
- INPUTS
- font - a font pointer as returned by OpenFont() or OpenDiskFont()
-
- RESULT
-
- BUGS
-
- SEE ALSO
- OpenFont() diskfont.library/OpenDiskFont graphics/text.h
-
- graphics.library/CloseMonitor graphics.library/CloseMonitor
-
- NAME
- CloseMonitor -- close a MonitorSpec (V36)
-
- SYNOPSIS
- error = CloseMonitor( monitor_spec )
- d0 a0
-
- LONG CloseMonitor( struct MonitorSpec * );
-
- FUNCTION
- Relinquish access to a MonitorSpec.
-
- INPUTS
- monitor_spec - a pointer to a MonitorSpec opened via OpenMonitor()
-
- RESULTS
- error - FALSE if MonitorSpec closed uneventfully.
- TRUE if MonitorSpec could not be closed.
-
- BUGS
-
- SEE ALSO
- OpenMonitor()
-
- graphics.library/CMOVE graphics.library/CMOVE
-
- NAME
- CMOVE -- append copper move instruction to user copper list.
-
- SYNOPSIS
- CMOVE( c , a , v )
-
- CMove( c , a , v )
- a1 d0 d1
- CBump( c )
- a1
-
- void CMove( struct UCopList *, void *, WORD );
-
- FUNCTION
- Add instruction to move value v to hardware register a.
-
- INPUTS
- c - pointer to UCopList structure
- a - hardware register
- v - 16 bit value to be written
-
- RESULTS
- This is actually a macro that calls CMove(c,&a,v)
- and then calls CBump(c) to bump the local pointer
- to the next instruction. Watch out for macro side affects.
-
- BUGS
-
- SEE ALSO
- CINIT CWAIT CEND graphics/copper.h
-
- graphics.library/CopySBitMap graphics.library/CopySBitMap
-
- NAME
- CopySBitMap -- Syncronize Layer window with contents of
- Super BitMap
-
- SYNOPSIS
- CopySBitMap( layer )
- a0
-
- void CopySBitMap(struct Layer *);
-
- FUNCTION
- This is the inverse of SyncSBitMap.
- Copy all bits from SuperBitMap to Layer bounds.
- This is used for those functions that do not
- want to deal with the ClipRect structures but do want
- to be able to work with a SuperBitMap Layer.
-
- INPUTS
- layer - pointer to a SuperBitMap Layer
- The Layer must already be locked by the caller.
-
- BUGS
-
- SEE ALSO
- LockLayerRom() SyncSBitMap()
-
- graphics.library/CWAIT graphics.library/CWAIT
-
- NAME
- CWAIT -- Append copper wait instruction to user copper list.
-
- SYNOPSIS
- CWAIT( c , v , h )
-
- CWait( c , v , h )
- a1 d0 d1
- CBump( c )
- a1
-
- void CWait( struct UCopList *, WORD, WORD)
-
- FUNCTION
- Add instruction to wait for vertical beam position v and
- horizontal position h to this intermediate copper list.
-
- INPUTS
- c - pointer to UCopList structure
- v - vertical beam position (relative to top of viewport)
- h - horizontal beam position
-
- RESULTS
- this is actually a macro that calls CWait(c,v,h)
- and then calls CBump(c) to bump the local pointer
- to the next instruction.
-
- BUGS
- User waiting for horizontal values of greater than 222 decimal
- is illegal.
-
- SEE ALSO
- CINIT CMOVE CEND graphics/copper.h
-
- graphics.library/DisownBlitter graphics.library/DisownBlitter
-
- NAME
- DisownBlitter - return blitter to free state.
-
-
- SYNOPSIS
- DisownBlitter()
-
- void DisownBlitter( void );
-
- FUNCTION
- Free blitter up for use by other blitter users.
-
- INPUTS
-
- RETURNS
-
- SEE ALSO
- OwnBlitter()
-
-
- graphics.library/DisposeRegion graphics.library/DisposeRegion
-
- NAME
- DisposeRegion -- Return all space for this region to free
- memory pool.
-
- SYNOPSIS
- DisposeRegion(region)
- a0
-
- void DisposeRegion( struct Region * );
-
- FUNCTION
- Free all RegionRectangles for this Region then
- free the Region itself.
-
- INPUTS
- region - pointer to Region structure
-
- BUGS
-
- SEE ALSO
- NewRegion() graphics/regions.h
-
- graphics.library/DoCollision graphics.library/DoCollision
-
- NAME
- DoCollision -- Test every gel in gel list for collisions.
-
- SYNOPSIS
- DoCollision(rp)
- A1
-
- void DoCollision(struct RastPort *);
-
- FUNCTION
- Tests each gel in gel list for boundary and gel-to-gel collisions.
- On detecting one of these collisions, the appropriate collision-
- handling routine is called. See the documentation for a thorough
- description of which collision routine is called. This routine
- expects to find the gel list correctly sorted in Y,X order.
- The system routine SortGList performs this function for the user.
-
- INPUTS
- rp = pointer to a RastPort
-
- RESULT
-
- BUGS
-
- SEE ALSO
- InitGels() SortGList() graphics/gels.h graphics/gels.h
-
- graphics.library/Draw graphics.library/Draw
-
- NAME
- Draw -- Draw a line between the current pen position
- and the new x,y position.
-
- SYNOPSIS
- Draw( rp, x, y)
- a1 d0:16 d1:16
-
- void Draw( struct RastPort *, SHORT, SHORT);
-
- FUNCTION
- Draw a line from the current pen position to (x,y).
-
- INPUTS
-
- rp - pointer to the destination RastPort
- x,y - coordinates of where in the RastPort to end the line.
-
- BUGS
-
- SEE ALSO
- Move() graphics/rastport.h
-
- graphics.library/DrawEllipse graphics.library/DrawEllipse
-
- NAME
- DrawEllipse -- Draw an ellipse centered at cx,cy with vertical
- and horizontal radii of a,b respectively.
-
- SYNOPSIS
- DrawEllipse( rp, cx, cy, a, b )
- a1 d0 d1 d2 d3
-
- void DrawEllipse( struct RastPort *, SHORT, SHORT, SHORT, SHORT);
-
- FUNCTION
- Creates an elliptical outline within the rectangular region
- specified by the parameters, using the current foreground pen color.
-
- INPUTS
- rp - pointer to the RastPort into which the ellipse will be drawn.
- cx - x coordinate of the centerpoint relative to the rastport.
- cy - y coordinate of the centerpoint relative to the rastport.
- a - the horizontal radius of the ellipse (note: a must be > 0)
- b - the vertical radius of the ellipse (note: b must be > 0)
-
- BUGS
-
- NOTES
- this routine does not clip the ellipse to a non-layered rastport.
-
- SEE ALSO
- DrawCircle(), graphics/rastport.h
-
- graphics.library/DrawGList graphics.library/DrawGList
-
- NAME
- DrawGList -- Process the gel list, queueing VSprites, drawing Bobs.
-
- SYNOPSIS
- DrawGList(rp, vp)
- A1 A0
-
- void DrawGList(struct RastPort *, struct ViewPort *);
-
- FUNCTION
- Performs one pass of the current gel list.
- - If nextLine and lastColor are defined, these are
- initialized for each gel.
- - If it's a VSprite, build it into the copper list.
- - If it's a Bob, draw it into the current raster.
- - Copy the save values into the "old" variables,
- double-buffering if required.
-
- INPUTS
- rp = pointer to the RastPort where Bobs will be drawn
- vp = pointer to the ViewPort for which VSprites will be created
-
- RESULT
-
- BUGS
- MUSTDRAW isn't implemented yet.
-
- SEE ALSO
- InitGels() graphics/gels.h graphics/rastport.h graphics/view.h
-
- graphics.library/EraseRect graphics.library/EraseRect
-
- NAME
-
- EraseRect -- Fill a defined rectangular area using the current
- BackFill hook. (V36)
-
- SYNOPSIS
- EraseRect( rp, xmin, ymin, xmax, ymax)
- a1 d0:16 d1:16 d2:16 d3:16
-
- void EraseRect(struct RastPort *, SHORT, SHORT, SHORT, SHORT);
-
- FUNCTION
- Fill the rectangular region specified by the parameters with the
- BackFill hook. If non-layered, the rectangular region specified by
- the parameters is cleared. If layered the Layer->BackFill Hook is used.
-
- INPUTS
- rp - pointer to a RastPort structure
- xmin - x coordinate of the upper left corner of the region to fill.
- ymin - y coordinate of the upper left corner of the region to fill.
- xmax - x coordinate of the lower right corner of the region to fill.
- ymax - y coordinate of the lower right corner of the region to fill.
-
- BUGS
-
- NOTES
- The following relation MUST be true:
- (xmax >= xmin) and (ymax >= ymin)
-
- SEE ALSO
- graphics/rastport.h graphics/clip.h
-
- graphics.library/ExtendFont graphics.library/ExtendFont
-
- NAME
- ExtendFont -- ensure tf_Extension has been built for a font (V36)
-
- SYNOPSIS
- success = ExtendFont(font, fontTags)
- D0 A0 A1
-
- ULONG ExtendFont(struct TextFont *, struct TagItem *);
-
- SEE ALSO
- graphics/text.h
-
- graphics.library/FindDisplayInfo graphics.library/FindDisplayInfo
-
- NAME
- FindDisplayInfo -- search for a record identified by a specific key (V36)
-
- SYNOPSIS
- handle = FindDisplayInfo(ID)
- D0 D0
-
- DisplayInfoHandle FindDisplayInfo(ULONG);
-
- FUNCTION
- Given a 32-bit Mode Key, return a handle to a valid DisplayInfoRecord
- found in the graphics database. Using this handle, you can obtain
- information about this Mode, including its default dimensions,
- properties, and whether it is currently available for use.
-
- INPUTS
- ID - unsigned long identifier
-
- RESULT
- handle - handle to a displayinfo Record with that key
- or NULL if no match.
-
- BUGS
-
- SEE ALSO
- graphics/displayinfo.h
-
- graphics.library/Flood graphics.library/Flood
-
- NAME
- Flood -- Flood rastport like areafill.
-
- SYNOPSIS
- error = Flood( rp, mode, x, y)
- d0 a1 d2 d0 d1
-
- BOOL Flood(struct RastPort *, ULONG, SHORT, SHORT);
-
- FUNCTION
- Search the BitMap starting at (x,y).
- Fill all adjacent pixels if they are:
- Mode 0: not the same color as AOLPen
- Mode 1: the same color as the pixel at (x,y)
-
- When actually doing the fill use the modes that apply to
- standard areafill routine such as drawmodes and patterns.
-
- INPUTS
- rp - pointer to RastPort
- (x,y) - coordinate in BitMap to start the flood fill at.
- mode - 0 fill all adjacent pixels searching for border.
- 1 fill all adjacent pixels that have same pen number
- as the one at (x,y).
-
- NOTES
- In order to use Flood, the destination RastPort must
- have a valid TmpRas raster whose size is as large as
- that of the RastPort.
-
- SEE ALSO
- AreaEnd() InitTmpRas() graphics/rastport.h
-
- graphics.library/FontExtent graphics.library/FontExtent
-
- NAME
- FontExtent -- get the font attributes of the current font (V36)
-
- SYNOPSIS
- FontExtent(font, fontExtent)
- A0 A1
-
- void FontExtent(struct TextFont *, struct TextExtent *);
-
- FUNCTION
- This function fills the text extent structure with a bounding
- (i.e. maximum) extent for the characters in the specified font.
-
- INPUTS
- font - the TextFont from which the font metrics are extracted.
- fontExtent - the TextExtent structure to be filled.
-
- RESULT
- fontExtent is filled.
-
- NOTES
- The TextFont, not the RastPort, is specified -- unlike
- TextExtent(), effect of algorithmic enhancements is not
- included, nor does te_Width include any effect of
- rp_TxSpacing. The returned te_Width will be negative only
- when FPF_REVPATH is set in the tf_Flags of the font -- the
- effect of left-moving characters is ignored for the width of
- a normal font, and the effect of right-moving characters is
- ignored if a REVPATH font. These characters will, however,
- be reflected in the bounding extent.
-
- SEE ALSO
- TextExtent() graphics/text.h
-
- graphics.library/FreeColorMap graphics.library/FreeColorMap
-
- NAME
- FreeColorMap -- Free the ColorMap structure and return memory
- to free memory pool.
-
- SYNOPSIS
- FreeColorMap( colormap )
- a0
-
- void FreeColorMap(struct ColorMap *);
-
- FUNCTION
- Return the memory to the free memory pool that was allocated
- with GetColorMap.
-
- INPUTS
- colormap - pointer to ColorMap allocated with GetColorMap
-
- RESULT
- The space is made available for others to use.
-
- BUGS
-
- SEE ALSO
- SetRGB4() GetColorMap() graphics/view.h
- graphics.library/FreeCopList graphics.library/FreeCopList
-
- NAME
- FreeCopList -- deallocate intermediate copper list
-
- SYNOPSIS
- FreeCopList(coplist)
- a0
-
- void FreeCopList( struct CopList *);
-
- FUNCTION
- Deallocate all memory associated with this copper list.
-
- INPUTS
- coplist - pointer to structure CopList
-
- RESULTS
- memory returned to memory manager
-
- BUGS
-
- SEE ALSO
- graphics/copper.h
-
- graphics.library/FreeCprList graphics.library/FreeCprList
-
- NAME
- FreeCprList -- deallocate hardware copper list
-
- SYNOPSIS
- FreeCprList(cprlist)
- a0
-
- void FreeCprList(struct cprlist *);
-
- FUNCTION
- return cprlist to free memory pool
-
- INPUTS
- cprlist - pointer to cprlist structure
-
- RESULTS
- memory returned and made available to other tasks
-
- BUGS
-
- SEE ALSO
- graphics/copper.h
-
- graphics.library/FreeGBuffers graphics.library/FreeGBuffers
-
- NAME
- FreeGBuffers -- Deallocate memory obtained by GetGBufers.
-
- SYNOPSIS
- FreeGBuffers(anOb, rp, db)
- A0 A1 D0
-
- void FreeGBuffers(struct AnimOb *, struct RastPort *, BOOL);
-
- FUNCTION
- For each sequence of each component of the AnimOb,
- deallocate memory for:
- SaveBuffer
- BorderLine
- CollMask and ImageShadow (point to same buffer)
- if db is set (user had used double-buffering) deallocate:
- DBufPacket
- BufBuffer
-
- INPUTS
- anOb = pointer to the AnimOb structure
- rp = pointer to the current RastPort
- db = double-buffer indicator (set TRUE for double-buffering)
-
- RESULT
-
- BUGS
-
- SEE ALSO
- GetGBuffers() graphics/gels.h graphics/rastport.h
-
- graphics.library/FreeRaster graphics.library/FreeRaster
-
- NAME
- FreeRaster -- Release an allocated area to the system free memory pool
- .
-
-
- SYNOPSIS
- FreeRaster( p, width, height)
- a0 d0:16 d1:16
-
- void FreeRaster( PLANEPTR, USHORT, USHORT);
-
- FUNCTION
- Return the memory associated with this PLANEPTR of size
- width and height to the MEMF_CHIP memory pool.
-
- INPUTS
- p = a pointer to a memory space returned as a
- result of a call to AllocRaster.
-
- width - the width in bits of the bitplane.
- height - number of rows in bitplane.
-
- BUGS
-
- NOTES
- Width and height should be the same values with which you
- called AllocRaster in the first place.
-
- SEE ALSO
- AllocRaster() graphics/gfx.h
-
- graphics.library/FreeSprite graphics.library/FreeSprite
-
- NAME
- FreeSprite -- Return sprite for use by others and virtual
- sprite machine.
-
- SYNOPSIS
- FreeSprite( pick )
- d0
-
- void FreeSprite( WORD );
-
- FUNCTION
- Mark sprite as available for others to use.
- These sprite routines are provided to ease sharing of sprite
- hardware and to handle simple cases of sprite usage and
- movement. It is assumed the programs that use these routines
- do want to be good citizens in their hearts. ie: they will
- not FreeSprite unless they actually own the sprite.
- The Virtual Sprite machine may ignore the simple sprite machine.
-
- INPUTS
- pick - number in range of 0-7
-
- RESULTS
- sprite made available for subsequent callers of GetSprite
- as well as use by Virtual Sprite Machine.
-
- BUGS
-
- SEE ALSO
- GetSprite() ChangeSprite() MoveSprite() graphics/sprite.h
-
- graphics.library/FreeVPortCopLists graphics.library/FreeVPortCopLists
-
- NAME
- FreeVPortCopLists -- deallocate all intermediate copper lists and
- their headers from a viewport
-
- SYNOPSIS
- FreeVPortCopLists(vp)
- a0
-
- void FreeVPortCopLists(struct ViewPort *);
-
- FUNCTION
- Search display, color, sprite, and user copper
- lists and call FreeMem() to deallocate them from memory
-
- INPUTS
- vp - pointer to ViewPort structure
-
- RESULTS
- The memory allocated to the various copper lists will be returned
- to the system's free memory pool, and the following fields in
- the viewport structure will be set to NULL:
-
- DspIns, Sprins, ClrIns, UCopIns
-
- BUGS
- none known
-
- SEE ALSO
- graphics/view.h
-
- graphics.library/GetColorMap graphics.library/GetColorMap
-
- NAME
- GetColorMap -- allocate and initialize Colormap
-
-
- SYNOPSIS
- cm = GetColorMap( entries )
- d0 d0
-
- struct ColorMap *GetColorMap( ULONG);
-
- FUNCTION
- Allocates, initializes and returns a pointer to a ColorMap
- data structure, later enabling calls to SetRGB4
- and LoadRGB4 to load colors for a view port. The ColorTable
- pointer in the ColorMap structure points to a hardware
- specific colormap data structure. You should not count on
- it being anything you can understand. Use GetRGB4() to
- query it or SetRGB4CM to set it directly.
-
- INPUTS
- entries - number of entries for this colormap
-
- RESULT
- The pointer value returned by this routine, if nonzero,
- may be stored into the ViewPort.ColorMap pointer.
- If a value of 0 is returned, the system was unable
- to allocate enough memory space for the required
- data structures.
-
- BUGS
-
- SEE ALSO
- SetRGB4() FreeColorMap()
- graphics.library/GetDisplayInfoData graphics.library/GetDisplayInfoData
-
- NAME
- GetDisplayInfoData -- query DisplayInfo Record parameters (V36)
-
- SYNOPSIS
- result = GetDisplayInfoData(handle, buf, size, tagID, [ID])
- D0 A0 A1 D0 D1 [D2]
-
- ULONG GetDisplayInfoData(DisplayInfoHandle, UBYTE *, ULONG, ULONG, ULONG);
-
- FUNCTION
- GetDisplayInfoData() fills a buffer with data meaningful to the
- DisplayInfoRecord pointed at by your valid handle. The data type
- that you are interested in is indicated by a tagID for that chunk.
- The types of tagged information that may be available include:
-
- DTAG_DISP: (DisplayInfo) - properties and availability information.
- DTAG_DIMS: (DimensionInfo) - default dimensions and overscan info.
- DTAG_MNTR: (MonitorInfo) - type, position, scanrate, and compatibility
- DTAG_NAME: (NameInfo) - a user friendly way to refer to this mode.
-
- INPUTS
- handle - displayinfo handle
- buf - pointer to destination buffer
- size - buffer size in bytes
- tagID - data chunk type
- ID - displayinfo identifier, optionally used if handle is NULL
-
- RESULT
- result - if positive, number of bytes actually transferred
- if zero, no information for ID was available
-
- BUGS
-
- SEE ALSO
- FindDisplayInfo(), NextDisplayInfo()
- graphics/displayinfo.h
-
- graphics.library/GetGBuffers graphics.library/GetGBuffers
-
- NAME
- GetGBuffers -- Attempt to allocate ALL buffers of an entire AnimOb.
-
- SYNOPSIS
- status = GetGBuffers(anOb, rp, db)
- D0 A0 A1 D0
-
- BOOL GetGBuffers(struct AnimOb *, struct RastPort *, BOOL);
-
- FUNCTION
- For each sequence of each component of the AnimOb, allocate memory for:
- SaveBuffer
- BorderLine
- CollMask and ImageShadow (point to same buffer)
- if db is set TRUE (user wants double-buffering) allocate:
- DBufPacket
- BufBuffer
-
- INPUTS
- anOb = pointer to the AnimOb structure
- rp = pointer to the current RastPort
- db = double-buffer indicator (set TRUE for double-buffering)
-
- RESULT
- status = TRUE if the memory allocations were all successful, else FALSE
-
- BUGS
- If any of the memory allocations fail it does not free the partial
- allocations that did succeed.
-
- SEE ALSO
- FreeGBuffers() graphics/gels.h
-
- graphics.library/GetRGB4 graphics.library/GetRGB4
-
- NAME
- GetRGB4 -- Inquire value of entry in ColorMap.
-
- SYNOPSIS
- value = GetRGB4( colormap, entry )
- d0 a0 d0
-
- ULONG GetRGB4(struct ColorMap *, LONG);
-
- FUNCTION
- Read and format a value from the ColorMap.
-
- INPUTS
- colormap - pointer to ColorMap structure
- entry - index into colormap
-
- RESULT
- returns -1 if no valid entry
- return UWORD RGB value 4 bits per gun right justified
-
- NOTE
- Intuition's DisplayBeep() changes color 0. Reading Color 0 during a
- DisplayBeep() will lead to incorrect results.
-
- BUGS
-
- SEE ALSO
- SetRGB4() LoadRGB4() GetColorMap() FreeColorMap() graphics/view.h
- graphics.library/GetSprite graphics.library/GetSprite
-
- NAME
- GetSprite -- Attempt to get a sprite for the simple sprite
- manager.
-
- SYNOPSIS
- Sprite_Number = GetSprite( sprite, pick )
- d0 a0 d0
-
- SHORT GetSprite( struct SimpleSprite *, SHORT );
-
- FUNCTION
- Attempt to allocate one of the eight sprites for private use
- with the simple sprite manager. This must be done before using
- further calls to the simple sprite machine. If the programmer
- wants to use 15 color sprites, they must allocate both sprites
- and set the 'SPRITE_ATTACHED' bit in the odd sprite's posctldata
- array.
-
- INPUTS
- sprite - ptr to programmers SimpleSprite structure.
- pick - number in the range of 0-7 or
- -1 if programmer just wants the next one.
-
- RESULTS
- If pick is 0-7 attempt to allocate the sprite. If the sprite
- is already allocated then return -1.
- If pick -1 allocate the next sprite starting search at 0.
- If no sprites are available return -1 and fill -1 in num entry
- of SimpleSprite structure.
- If the sprite is available for allocation, mark it allocated
- and fill in the 'num' entry of the SimpleSprite structure.
- If successful return the sprite number.
-
- BUGS
-
- SEE ALSO
- FreeSprite() ChangeSprite() MoveSprite() GetSprite() graphics/sprite.h
-
- graphics.library/GetVPModeID graphics.library/GetVPModeID
-
- NAME
- GetVPModeID -- get the 32 bit DisplayID from a ViewPort. (V36)
-
- SYNOPSIS
- modeID = GetVPModeID( vp )
- d0 a0
-
- ULONG GetVPModeID( struct ViewPort *);
-
- FUNCTION
- returns the normal display modeID, if one is currently associated
- with this ViewPort.
-
- INPUTS
- vp -- pointer to a ViewPort structure.
-
- RESULT
-
- modeID -- a 32 bit DisplayInfoRecord identifier associated with
- this ViewPort, or INVALID_ID.
-
- NOTES
- Test the return value of this function against INVALID_ID, not NULL.
- (INVALID_ID is defined in graphics/displayinfo.h).
-
- BUGS
-
- SEE ALSO
- graphics/displayinfo.h, ModeNotAvailable()
-
- graphics.library/GfxAssociate graphics.library/GfxAssociate
-
- NAME
- GfxAssociate -- associate a graphics extended node with a given pointer
- (V36)
-
- SYNOPSIS
- GfxAssociate(pointer, node);
- A0 A1
-
- void GfxAssociate(VOID *, struct ExtendedNode *);
-
- FUNCTION
- Associate a special graphics extended data structure (each of which
- begins with an ExtendedNode structure) with another structure via
- the other structure's pointer. Later, when you call GfxLookUp()
- with the other structure's pointer you may retrieve a pointer
- to this special graphics extended data structure, if it is
- available.
-
- INPUTS
- pointer = a pointer to a data structure.
- node = an ExtendedNode structure to associate with the pointer
-
- RESULT
- an association is created between the pointer and the node such
- that given the pointer the node can be retrieved via GfxLookUp().
-
- BUGS
-
- SEE ALSO
- graphics/gfxnodes.h GfxNew() GfxFree() GfxLookUp()
-
- graphics.library/GfxFree graphics.library/GfxFree
-
- NAME
- GfxFree -- free a graphics extended data structure (V36)
-
- SYNOPSIS
- GfxFree( node );
- a0
-
- void GfxFree(struct ExtendedNode *);
-
- FUNCTION
- Free a special graphics extended data structure (each of which
- begins with an ExtendedNode structure).
-
- INPUTS
- node = pointer to a graphics extended data structure obtained via
- GfxNew().
-
- RESULT
- the node is deallocated from memory. graphics will dissassociate
- this special graphics extended node from any associated data
- structures, if necessary, before freeing it (see GfxAssociate()).
-
- BUGS
- an Alert() will be called if you attempt to free any structure
- other than a graphics extended data strucure obtained via GfxFree().
-
- SEE ALSO
- graphics/gfxnodes.h GfxNew() GfxAssociate() GfxLookUp()
-
- graphics.library/GfxLookUP graphics.library/GfxLookUP
-
- NAME
- GfxLookUp -- find a graphics extended node associated with a
- given pointer (V36)
-
- SYNOPSIS
- result = GfxLookUp( pointer );
- d0 a0
-
- struct ExtendedNode *GfxLookUp( void *);
-
- FUNCTION
- Finds a special graphics extended data structure (if any) associated
- with the pointer to a data structure (eg: ViewExtra associated with
- a View structure).
-
- INPUTS
- pointer = a pointer to a data structure which may have an
- ExtendedNode associated with it (typically a View ).
-
- RESULT
- result = a pointer to the ExtendedNode that has previously been
- associated with the pointer.
-
- BUGS
-
- SEE ALSO
- graphics/gfxnodes.h GfxNew() GfxFree() GfxAssociate()
-
- graphics.library/GfxNew graphics.library/GfxNew
-
- NAME
- GfxNew -- allocate a graphics extended data structure (V36)
-
- SYNOPSIS
- result = GfxNew( node_type );
- d0 d0
-
- struct ExtendedNode *GfxNew( ULONG);
-
- FUNCTION
- Allocate a special graphics extended data structure (each of which
- begins with an ExtendedNode structure). The type of structure to
- be allocated is specified by the node_type identifier.
-
- INPUTS
- node_type = which type of graphics extended data structure to allocate.
- (see gfxnodes.h for identifier definitions.)
-
- RESULT
- result = a pointer to the allocated graphics node or NULL if the
- allocation failed.
-
- BUGS
-
- SEE ALSO
- graphics/gfxnodes.h GfxFree() GfxAssociate() GfxLookUp()
-
- graphics.library/InitArea graphics.library/InitArea
-
- NAME
-
- InitArea -- Initialize vector collection matrix
-
- SYNOPSIS
-
- InitArea( areainfo, buffer, maxvectors )
- a0 a1 d0
-
- void InitArea(struct AreaInfo *, void *, SHORT);
-
- FUNCTION
- This function provides initialization for the vector collection matrix
- such that it has a size of (max vectors ). The size of the region
- pointed to by buffer (short pointer) should be five (5) times as large
- as maxvectors. This size is in bytes. Areafills done by using AreaMove,
- AreaDraw, and AreaEnd must have enough space allocated in this table to
- store all the points of the largest fill. AreaEllipse takes up two
- vectors for every call. If AreaMove/Draw/Ellipse detect too many
- vectors going into the buffer they will return -1.
-
- INPUTS
- areainfo - pointer to AreaInfo structure
- buffer - pointer to chunk of memory to collect vertices
- maxvectors - max number of vectors this buffer can hold
-
- RESULT
- Pointers are set up to begin storage of vectors done by
- AreaMove, AreaDraw, and AreaEllipse.
-
- BUGS
-
- SEE ALSO
- AreaEnd() AreaMove() AreaDraw() AreaEllipse() graphics/rastport.h
-
- graphics.library/InitBitMap graphics.library/InitBitMap
-
- NAME
-
- InitBitMap -- Initialize bit map structure with input values.
-
- SYNOPSIS
- InitBitMap( bm, depth, width, height )
- a0 d0 d1 d2
-
- void InitBitMap( struct BitMap *, BYTE, UWORD, UWORD );
-
- FUNCTION
- Initialize various elements in the BitMap structure to
- correctly reflect depth, width, and height.
- Must be used before use of BitMap in other graphics calls.
- The Planes[8] are not initialized and need to be set up
- by the caller. The Planes table was put at the end of the
- structure so that it may be truncated to conserve space,
- as well as extended. All routines that use BitMap should
- only depend on existence of depth number of bitplanes.
- The Flagsh and pad fields are reserved for future use and
- should not be used by application programs.
-
- INPUTS
- bm - pointer to a BitMap structure (gfx.h)
- depth - number of bitplanes that this bitmap will have
- width - number of bits (columns) wide for this BitMap
- height- number of bits (rows) tall for this BitMap
-
- BUGS
-
- SEE ALSO
- graphics/gfx.h
-
- graphics.library/InitGels graphics.library/InitGels
-
- NAME
- InitGels -- initialize a gel list; must be called before using gels.
-
- SYNOPSIS
- InitGels(head, tail, GInfo)
- A0 A1 A2
-
- void InitGels(struct VSprite *, struct VSprite *, struct GelsInfo *);
-
- FUNCTION
- Assigns the VSprites as the head and tail of the gel list in GfxBase.
- Links these two gels together as the keystones of the list.
- If the collHandler vector points to some memory array, sets
- the BORDERHIT vector to NULL.
-
- INPUTS
- head = pointer to the VSprite structure to be used as the gel list head
- tail = pointer to the VSprite structure to be used as the gel list tail
- GInfo = pointer to the GelsInfo structure to be initialized
-
- RESULT
-
- BUGS
-
- SEE ALSO
- graphics/gels.h graphics/rastport.h
-
- graphics.library/InitGMasks graphics.library/InitGMasks
-
- NAME
- InitGMasks -- Initialize all of the masks of an AnimOb.
-
- SYNOPSIS
- InitGMasks(anOb)
- A0
-
- void InitGMasks(struct AnimOb *);
-
- FUNCTION
- For every sequence of every component call InitMasks.
-
- INPUTS
- anOb = pointer to the AnimOb
-
- BUGS
-
- SEE ALSO
- InitMasks() graphics/gels.h
-
- graphics.library/InitMasks graphics.library/InitMasks
-
- NAME
- InitMasks -- Initialize the BorderLine and CollMask masks of a VSprite.
-
- SYNOPSIS
- InitMasks(vs)
- A0
-
- void InitMasks(struct VSprite *);
-
- FUNCTION
- Creates the appropriate BorderLine and CollMask masks of the VSprite.
- Correctly detects if the VSprite is actually a Bob definition, handles
- the image data accordingly.
-
- INPUTS
- vs = pointer to the VSprite structure
-
- RESULT
-
- BUGS
-
- SEE ALSO
- InitGels() graphics/gels.h
-
- graphics.library/InitRastPort graphics.library/InitRastPort
-
- NAME
- InitRastPort -- Initialize raster port structure
-
- SYNOPSIS
- InitRastPort( rp )
- a1
-
- void InitRastPort(struct RastPort *);
-
-
- FUNCTION
- Initialize a RastPort structure to standard values.
-
- INPUTS
- rp = pointer to a RastPort structure.
-
- RESULT
- all entries in RastPort get zeroed out, with the following exceptions:
-
- Mask, FgPen, AOLPen, and LinePtrn are set to -1.
- The DrawMode is set to JAM2
- The font is set to the standard system font
-
- NOTES
- The struct Rastport describes a control structure
- for a write-able raster. The RastPort structure
- describes how a complete single playfield display
- will be written into. A RastPort structure is
- referenced whenever any drawing or filling
- operations are to be performed on a section of
- memory.
-
- The section of memory which is being used in this
- way may or may not be presently a part of the
- current actual onscreen display memory. The name
- of the actual memory section which is linked to
- the RastPort is referred to here as a "raster" or
- as a bitmap.
-
- NOTE: Calling the routine InitRastPort only
- establishes various defaults. It does NOT
- establish where, in memory, the rasters are
- located. To do graphics with this RastPort the user
- must set up the BitMap pointer in the RastPort.
-
- BUGS
-
- SEE ALSO
- graphics/rastport.h
-
- graphics.library/InitTmpRas graphics.library/InitTmpRas
-
- NAME
- InitTmpRas -- Initialize area of local memory for usage by
- areafill, floodfill, text.
-
- SYNOPSIS
- InitTmpRas(tmpras, buffer, size)
- a0 a1 d0
-
- void InitTmpRas( struct TmpRas *, void *, ULONG );
-
- FUNCTION
- The area of memory pointed to by buffer is set up to be used
- by RastPort routines that may need to get some memory for
- intermediate operations in preparation to putting the graphics
- into the final BitMap.
- Tmpras is used to control the usage of buffer.
-
- INPUTS
- tmpras - pointer to a TmpRas structure to be linked into
- a RastPort
- buffer - pointer to a contguous piece of chip memory.
- size - size in bytes of buffer
-
- RESULT
- makes buffer available for users of RastPort
-
- BUGS
- Would be nice if RastPorts could share one TmpRas.
-
- SEE ALSO
- AreaEnd() Flood() Text() graphics/rastport.h
-
- graphics.library/InitView graphics.library/InitView
-
- NAME
- InitView - Initialize View structure.
-
- SYNOPSIS
- InitView( view )
- a1
-
- void InitView( struct View * );
-
- FUNCTION
- Initialize View structure to default values.
-
- INPUTS
- view - pointer to a View structure
-
- RESULT
- View structure set to all 0's. (1.0,1.1.1.2)
- Then values are put in DxOffset,DyOffset to properly position
- default display about .5 inches from top and left on monitor.
- InitView pays no attention to previous contents of view.
-
- BUGS
-
- SEE ALSO
- MakeVPort graphics/view.h
-
- graphics.library/InitVPort graphics.library/InitVPort
-
- NAME
- InitVPort - Initialize ViewPort structure.
-
- SYNOPSIS
- InitVPort( vp )
- a0
-
- void InitVPort( struct ViewPort * );
-
- FUNCTION
- Initialize ViewPort structure to default values.
-
- INPUTS
- vp - pointer to a ViewPort structure
-
- RESULT
- ViewPort structure set to all 0's. (1.0,1.1)
- New field added SpritePriorities, initialized to 0x24 (1.2)
-
- BUGS
-
- SEE ALSO
- MakeVPort() graphics/view.h
-
- graphics.library/LoadRGB4 graphics.library/LoadRGB4
-
- NAME
- LoadRGB4 -- Load RGB color values from table.
-
- SYNOPSIS
- LoadRGB4( vp, colors , count )
- a0 a1 d0:16
-
- void LoadRGB4( struct ViewPort *, UWORD *, WORD);
-
- FUNCTION
- load the count words of the colormap from table starting at
- entry 0.
-
- INPUTS
- vp - pointer to ViewPort, whose colors you wish to change
- colors - pointer to table of RGB values set up as an array
- of USHORTS
- background-- 0x0RGB
- color1 -- 0x0RGB
- color2 -- 0x0RGB
- etc. UWORD per value.
- The colors are interpreted as 15 = maximum intensity.
- 0 = minimum intensity.
- count = number of UWORDs in the table to load into the
- colormap starting at color 0(background) and proceeding
- to the next higher color number
-
- RESULTS
- The ViewPort should have a pointer to a valid ColorMap to store
- the colors in.
- Updates the hardware copperlist to reflect the new colors.
- Updates the intermediate copperlist with the new colors.
-
- BUGS
-
- NOTE: With V36 and up, it is not safe to call this function
- from an interrupt, because of the semaphore locking on graphics
- copper lists.
-
- SEE ALSO
- SetRGB4() GetRGB4() GetColorMap() graphics/view.h
-
- graphics.library/LoadView graphics.library/LoadView
-
- NAME
- LoadView -- Use a (possibly freshly created) coprocessor instruction
- list to create the current display.
-
- SYNOPSIS
- LoadView( View )
- A1
-
- void LoadView( struct View * );
-
- FUNCTION
- Install a new view to be displayed during the next display
- refresh pass.
- Coprocessor instruction list has been created by
- InitVPort(), MakeVPort(), and MrgCop().
-
- INPUTS
- View - a pointer to the View structure which contains the
- pointer to the constructed coprocessor instructions list, or NULL.
-
- RESULT
- If the View pointer is non-NULL, the new View is displayed,
- according to your instructions. The vertical blank routine
- will pick this pointer up and direct the copper to start
- displaying this View.
-
- If the View pointer is NULL, no View is displayed.
-
- NOTE
- Even though a LoadView(NULL) is performed, display DMA will still be
- active. Sprites will continue to be displayed after a LoadView(NULL)
- unless an OFF_SPRITE is subsequently performed.
-
- BUGS
-
- SEE ALSO
- InitVPort() MakeVPort() MrgCop() intuition/RethinkDisplay()
- graphics/view.h
-
- graphics.library/LockLayerRom graphics.library/LockLayerRom
-
- NAME
- LockLayerRom -- Lock Layer structure by rom(gfx lib) code.
-
- SYNOPSIS
- LockLayerRom( layer )
- a5
-
- void LockLayerRom( struct Layer * );
-
- FUNCTION
- Return when the layer is locked and no other task may
- alter the ClipRect structure in the Layer structure.
- This call does not destroy any registers.
- This call nests so that callers in this chain will not lock
- themselves out.
- Do not have the Layer locked during a call to intuition.
- There is a potential deadlock problem here, if intuition
- needs to get other locks as well.
- Having the layer locked prevents other tasks from using the
- layer library functions, most notably intuition itself. So
- be brief.
- layers.library's LockLayer is identical to LockLayerRom.
-
- INPUTS
- layer - pointer to Layer structure
-
- RESULTS
- The layer is locked and the task can render assuming the
- ClipRects will not change out from underneath it until
- an UnlockLayerRom is called.
-
- SEE ALSO
- UnlockLayerRom() layers.library/LockLayer() graphics/clip.h
-
- graphics.library/MakeVPort graphics.library/MakeVPort
-
- NAME
- MakeVPort -- generate display copper list for a viewport.
-
- SYNOPSIS
- MakeVPort( view, viewport )
- a0 a1
-
- void MakeVPort( struct View *, struct ViewPort * );
-
- FUNCTION
- Uses information in the View, ViewPort, ViewPort->RasInfo to
- construct and intermediate copper list for this ViewPort.
-
- INPUTS
- view - pointer to a View structure
- viewport - pointer to a ViewPort structure
- The viewport must have valid pointer to a RasInfo.
-
- RESULTS
- constructs intermediate copper list and puts pointers in
- viewport.DspIns
- If the ColorMap ptr in ViewPort is NULL then it uses colors
- from the default color table.
- If DUALPF in Modes then there must be a second RasInfo pointed
- to by the first RasInfo
-
- BUGS
- Narrow Viewports (whose righthand edge is less than 3/4 of the
- way across the display) still do not work properly.
-
- SEE ALSO
- InitVPort() MrgCop() graphics/view.h intuition.library/MakeScreen()
- intuition.library/RemakeDisplay() intuition.library/RethinkDisplay()
-
- graphics.library/ModeNotAvailable graphics.library/ModeNotAvailable
-
- NAME
- ModeNotAvailable -- check to see if a DisplayID isn't available. (V36)
-
- SYNOPSIS
- error = ModeNotAvailable( modeID )
- d0 d0
-
- ULONG ModeNotAvailable( ULONG);
-
- FUNCTION
- returns an error code, indicating why this modeID is not available,
- or NULL if there is no reason known why this mode should not be there.
-
- INPUTS
- modeID -- a 32 bit DisplayInfoRecord identifier.
-
- RESULT
- error -- a general indication of why this modeID is not available,
- or NULL if there is no reason why it shouldn't be available.
-
- NOTE
- ULONG return values from this function are a proper superset of the
- DisplayInfo.NotAvailable field (defined in graphics/displayinfo.h).
-
- BUGS
-
- SEE ALSO
- graphics/displayinfo.h, GetVPModeID()
-
- graphics.library/Move graphics.library/Move
-
- NAME
- Move -- Move graphics pen position.
-
- SYNOPSIS
- Move( rp, x, y)
- a1 d0:16 d1:16
-
- void Move( struct RastPort *, SHORT, SHORT );
-
- FUNCTION
- Move graphics pen position to (x,y) relative to upper left (0,0)
- of RastPort. This sets the starting point for subsequent Draw()
- and Text() calls.
-
- INPUTS
- rp - pointer to a RastPort structure
- x,y - point in the RastPort
-
- RESULTS
-
- BUGS
-
- SEE ALSO
- Draw graphics/rastport.h
-
- graphics.library/MoveSprite graphics.library/MoveSprite
-
- NAME
- MoveSprite -- Move sprite to a point relative to top of viewport.
-
- SYNOPSIS
- MoveSprite(vp, sprite, x, y)
- A0 A1 D0 D1
-
- void MoveSprite(struct ViewPort *,struct SimpleSprite *, WORD, WORD);
-
- FUNCTION
- Move sprite image to new place on display.
-
- INPUTS
- vp - pointer to ViewPort structure
- if vp = 0, sprite is positioned relative to View.
- sprite - pointer to SimpleSprite structure
- (x,y) - new position relative to top of viewport or view.
-
- RESULTS
- Calculate the hardware information for the sprite and
- place it in the posctldata array. During next video display
- the sprite will appear in new position.
-
- BUGS
- Sprites really appear one pixel to the left of the position you specify.
- This bug affects the apparent display position of the sprite on the
- screen, but does not affect the numeric position relative to the
- viewport or view.
-
- SEE ALSO
- FreeSprite() ChangeSprite() GetSprite() graphics/sprite.h
-
- graphics.library/MrgCop graphics.library/MrgCop
-
- NAME
- MrgCop -- Merge together coprocessor instructions.
-
- SYNOPSIS
- MrgCop( View )
- A1
-
- void MrgCop( struct View * );
-
- FUNCTION
- Merge together the display, color, sprite and user coprocessor
- instructions into a single coprocessor instruction stream. This
- essentially creates a per-display-frame program for the coprocessor.
- This function MrgCop is used, for example, by the graphics animation
- routines which effectively add information into an essentially
- static background display. This changes some of the user
- or sprite instructions, but not those which have formed the
- basic display in the first place. When all forms of coprocessor
- instructions are merged together, you will have a complete per-
- frame instruction list for the coprocessor.
-
- Restrictions: Each of the coprocessor instruction lists MUST be
- internally sorted in min to max Y-X order. The merge routines
- depend on this! Each list must be terminated using CEND(copperlist).
-
- INPUTS
- View - a pointer to the view structure whose coprocessor
- instructions are to be merged.
-
- RESULT
-
- The view structure will now contain a complete, sorted/merged
- list of instructions for the coprocessor, ready to be used by
- the display processor. The display processor is told to use
- this new instruction stream through the instruction LoadView().
-
- BUGS
-
- SEE ALSO
- InitVPort() MakeVPort() LoadView() graphics/view.h
- intuition.library/RethinkDisplay()
-
- graphics.library/NewRegion graphics.library/NewRegion
-
- NAME
- NewRegion -- Get an empty region.
-
- SYNOPSIS
- region = NewRegion()
- d0
-
- struct Region *NewRegion();
-
- FUNCTION
- Create a Region structure, initialize it to empty, and return
- a pointer it.
-
- RESULTS
- region - pointer to initialized region. If it could not allocate
- required memory region = NULL.
-
- INPUTS
- none
-
- BUGS
-
- SEE ALSO
- graphics/regions.h
-
- graphics.library/NextDisplayInfo graphics.library/NextDisplayInfo
-
- NAME
- NextDisplayInfo -- iterate current displayinfo identifiers (V36)
-
- SYNOPSIS
- next_ID = NextDisplayInfo(last_ID)
- D0 D0
-
- ULONG NextDisplayInfo(ULONG);
-
- FUNCTION
- The basic iteration function with which to find all records in the
- graphics database. Using each ID in succession, you can then call
- FindDisplayInfo() to obtain the handle associated with each ID.
- Each ID is a 32-bit Key which uniquely identifies one record.
- The INVALID_ID is special, and indicates the end-of-list.
-
- INPUTS
- last_ID - previous displayinfo identifier
- or INVALID_ID if beginning iteration.
-
- RESULT
- next_ID - subsequent displayinfo identifier
- or INVALID_ID if no more records.
-
- BUGS
-
- SEE ALSO
- FindDisplayInfo(), GetDisplayInfoData()
- graphics/displayinfo.h
-
- graphics.library/OpenFont graphics.library/OpenFont
-
- NAME
- OpenFont -- Get a pointer to a system font.
-
- SYNOPSIS
- font = OpenFont(textAttr)
- D0 A0
-
- struct TextFont *OpenFont(struct TextAttr *);
-
- FUNCTION
- This function searches the system font space for the graphics
- text font that best matches the attributes specified. The
- pointer to the font returned can be used in subsequent
- SetFont and CloseFont calls. It is important to match this
- call with a corresponding CloseFont call for effective
- management of ram fonts.
-
- INPUTS
- textAttr - a TextAttr or TTextAttr structure that describes the
- text font attributes desired.
-
- RESULT
- font is zero if the desired font cannot be found. If the named
- font is found, but the size and style specified are not
- available, a font with the nearest attributes is returned.
-
- SEE ALSO
- CloseFont() SetFont()
- diskfont.library/OpenDiskFont graphics/text.h
-
- graphics.library/OpenMonitor graphics.library/OpenMonitor
-
- NAME
- OpenMonitor -- open a named MonitorSpec (V36)
-
- SYNOPSIS
- mspc = OpenMonitor( monitor_name , display_id)
- d0 a1 d0
-
- struct MonitorSpec *OpenMonitor( char *, ULONG );
-
- FUNCTION
- Locate and open a named MonitorSpec.
-
- INPUTS
- monitor_name - a pointer to a null terminated string.
- display_id - an optional 32 bit monitor/mode identifier
-
- RESULTS
- mspc - a pointer to an open MonitorSpec structure.
- NULL if MonitorSpec could not be opened.
-
- NOTE
- if monitor_name is non-NULL, the monitor will be opened by name.
- if monitor_name is NULL the monitor will be opened by optional ID.
- if both monitor_name and display_id are NULL returns default monitor.
-
- BUGS
-
- SEE ALSO
- CloseMonitor() graphics/monitor.h
-
- graphics.library/OrRectRegion graphics.library/OrRectRegion
-
- NAME
- OrRectRegion -- Perform 2d OR operation of rectangle
- with region, leaving result in region.
-
- SYNOPSIS
- status = OrRectRegion(region,rectangle)
- d0 a0 a1
-
- BOOL OrRectRegion( struct Region *, struct Rectangle * );
-
- FUNCTION
- If any portion of rectangle is not in the region then add
- that portion to the region.
-
- INPUTS
- region - pointer to Region structure
- rectangle - pointer to Rectangle structure
-
- RESULTS
- status - return TRUE if successful operation
- return FALSE if ran out of memory
-
- BUGS
-
- SEE ALSO
- AndRectRegion() OrRegionRegion() graphics/regions.h
-
- graphics.library/OrRegionRegion graphics.library/OrRegionRegion
-
- NAME
- OrRegionRegion -- Perform 2d OR operation of one region
- with second region, leaving result in second region
-
- SYNOPSIS
- status = OrRegionRegion(region1,region2)
- d0 a0 a1
-
- BOOL OrRegionRegion( struct Region *, struct Region * );
-
- FUNCTION
- If any portion of region1 is not in the region then add
- that portion to the region2
-
- INPUTS
- region1 - pointer to Region structure
- region2 - pointer to Region structure
-
- RESULTS
- status - return TRUE if successful operation
- return FALSE if ran out of memory
-
- BUGS
-
- SEE ALSO
- OrRectRegion() graphics/regions.h
-
- graphics.library/OwnBlitter graphics.library/OwnBlitter
-
- NAME
- OwnBlitter -- get the blitter for private usage
-
- SYNOPSIS
- OwnBlitter()
-
- void OwnBlitter( void );
-
- FUNCTION
- If blitter is available return immediately with the blitter
- locked for your exclusive use. If the blitter is not available
- put task to sleep. It will be awakened as soon as the blitter
- is available. When the task first owns the blitter the blitter
- may still be finishing up a blit for the previous owner. You
- must do a WaitBlit before actually using the blitter registers.
-
- Calls to OwnBlitter() do not nest. If a task that owns the
- blitter calls OwnBlitter() again, a lockup will result.
- (Same situation if the task calls a system function
- that tries to own the blitter).
-
- INPUTS
- NONE
-
- RETURNS
- NONE
-
- SEE ALSO
- DisownBlitter() WaitBlit()
- graphics.library/PolyDraw graphics.library/PolyDraw
-
- NAME
- PolyDraw -- Draw lines from table of (x,y) values.
-
- SYNOPSIS
- PolyDraw( rp, count , array )
- a1 d0 a0
-
- void PolyDraw( struct RastPort *, WORD, WORD * );
-
- FUNCTION
- starting with the first pair in the array, draw connected lines to
- it and every successive pair.
-
- INPUTS
- rp - pointer to RastPort structure
- count - number of (x,y) pairs in the array
- array - pointer to first (x,y) pair
-
- BUGS
-
- SEE ALSO
- Draw() Move() graphics/rastport.h
-
- graphics.library/QBlit graphics.library/QBlit
-
- NAME
-
- QBlit -- Queue up a request for blitter usage
-
- SYNOPSIS
- QBlit( bp )
- a1
-
- void QBlit( struct bltnode * );
-
- FUNCTION
- Link a request for the use of the blitter to the end of the
- current blitter queue. The pointer bp points to a blit structure
- containing, among other things, the link information, and the
- address of your routine which is to be called when the blitter
- queue finally gets around to this specific request. When your
- routine is called, you are in control of the blitter ... it is
- not busy with anyone else's requests. This means that you can
- directly specify the register contents and start the blitter.
- See the description of the blit structure and the uses of QBlit
- in the section titled Graphics Support in the OS Kernel Manual.
- Your code must be written to run either in supervisor or user
- mode on the 68000.
-
- INPUTS
- bp - pointer to a blit structure
-
- RESULT
- Your routine is called when the blitter is ready for you.
- In general requests for blitter usage through this channel are
- put in front of those who use the blitter via OwnBlitter and
- DisownBlitter. However for small blits there is more overhead
- using the queuer than Own/Disown Blitter.
-
- BUGS
-
- SEE ALSO
- QBSBlit() hardware/blit.h
-
- graphics.library/QBSBlit graphics.library/QBSBlit
-
- NAME
-
- QBSBlit -- Synchronize the blitter request with the video beam.
-
- SYNOPSIS
-
- QBSBlit( bsp )
- a1
-
- void QBSBlit( struct bltnode * );
-
- FUNCTION
- Call a user routine for use of the blitter, enqueued separately from
- the QBlit queue. Calls the user routine contained in the blit
- structure when the video beam is located at a specified position
- onscreen. Useful when you are trying to blit into a visible part
- of the screen and wish to perform the data move while the beam is
- not trying to display that same area. (prevents showing part of
- an old display and part of a new display simultaneously). Blitter
- requests on the QBSBlit queue take precedence over those on the
- regular blitter queue. The beam position is specified the blitnode.
-
- INPUTS
- bsp - pointer to a blit structure. See description in the
- Graphics Support section of the manual for more info.
-
- RESULT
- User routine is called when the QBSBlit queue reaches this
- request AND the video beam is in the specified position.
- If there are lots of blits going on and the video beam
- has wrapped around back to the top it will call all the
- remaining bltnodes as fast as it can to try and catch up.
-
- BUGS
- Not very smart when getting blits from different tasks.
- They all get put in same queue so there are unfortunately
- some interdependencies with the beam syncing.
-
- SEE ALSO
- QBlit() hardware/blit.h
-
- graphics.library/ReadPixel graphics.library/ReadPixel
-
- NAME
- ReadPixel -- read the pen number value of the pixel at a
- specified x,y location within a certain RastPort.
-
- SYNOPSIS
- penno = ReadPixel( rp, x, y )
- d0 a1 d0:16 d1:16
-
- LONG ReadPixel( struct RastPort *, SHORT, SHORT );
-
- FUNCTION
- Combine the bits from each of the bit-planes used to describe
- a particular RastPort into the pen number selector which that
- bit combination normally forms for the system hardware selection
- of pixel color.
-
- INPUTS
- rp - pointer to a RastPort structure
- (x,y) a point in the RastPort
-
- RESULT
- penno - the pen number of the pixel at (x,y) is returned.
- -1 is returned if the pixel cannot be read for some reason.
-
- BUGS
-
- SEE ALSO
- WritePixel() graphics/rastport.h
-
- graphics.library/ReadPixelArray8 graphics.library/ReadPixelArray8
-
- NAME
- ReadPixelArray8 -- read the pen number value of a rectangular array
- of pixels starting at a specified x,y location and continuing
- through to another x,y location within a certain RastPort. (V36)
-
- SYNOPSIS
- count = ReadPixelArray8(rp,xstart,ystart,xstop,ystop,array,temprp)
- D0 A0 D0:16 D1:16 D2:16 D3:16 A2 A1
-
- LONG ReadPixelArray8(struct RastPort *, UWORD, UWORD, UWORD, UWORD,
- UBYTE *, struct RastPort *);
-
- FUNCTION
- For each pixel in a rectangular region, combine the bits from each
- of the bit-planes used to describe a particular RastPort into the pen
- number selector which that bit combination normally forms for the
- system hardware selection of pixel color.
-
- INPUTS
- rp - pointer to a RastPort structure
- (xstart,ystart) - starting point in the RastPort
- (xstop,ystop) - stopping point in the RastPort
- array - pointer to an array of ubytes from which to fetch the pixel data
- allocate at least ((((width+15)>>4)<<4)*(ystop-ystart+1)) bytes.
- temprp - temporary rastport (copy of rp with Layer set == NULL,
- temporary memory allocated for
- temprp->BitMap with Rows set == 1,
- temprp->BytesPerRow == (((width+15)>>4)<<1),
- and temporary memory allocated for
- temprp->BitMap->Planes[])
-
- RESULT
- For each pixel in the array:
- Pen - (0..255) number at that position is returned
- count - the number of pixels read.
-
- NOTE
- xstop must be >= xstart
- ystop must be >= ystart
-
- BUGS
-
- SEE ALSO
- ReadPixel() ReadPixelLine8() graphics/rastport.h
-
- graphics.library/ReadPixelLine8 graphics.library/ReadPixelLine8
-
- NAME
- ReadPixelLine8 -- read the pen number value of a horizontal line
- of pixels starting at a specified x,y location and continuing
- right for count pixels. (V36)
-
- SYNOPSIS
- count = ReadPixelLine8(rp,xstart,ystart,width,array,temprp)
- D0 A0 D0:16 D1:16 D2 A2 A1
-
- LONG ReadPixelLine8(struct RastPort *, UWORD, UWORD, UWORD,
- UBYTE *, struct RastPort * );
-
- FUNCTION
- For each pixel in a rectangular region, combine the bits from each
- of the bit-planes used to describe a particular RastPort into the pen
- number selector which that bit combination normally forms for the
- system hardware selection of pixel color.
-
- INPUTS
- rp - pointer to a RastPort structure
- (x,y) - a point in the RastPort
- width - count of horizontal pixels to read
- array - pointer to an array of UBYTEs from which to fetch the pixel data
- allocate at least (((width+15)>>4)<<4) bytes.
- temprp - temporary rastport (copy of rp with Layer set == NULL,
- temporary memory allocated for
- temprp->BitMap with Rows set == 1,
- temprp->BytesPerRow == (((width+15)>>4)<<1),
- and temporary memory allocated for
- temprp->BitMap->Planes[])
-
- RESULT
- For each pixel in the array:
- Pen - (0..255) number at that position is returned
- count - the number of pixels read.
-
- NOTE
- width must be non negative
-
- BUGS
-
- SEE ALSO
- ReadPixel() graphics/rastport.h
-
- graphics.library/RectFill graphics.library/RectFill
-
- NAME
- RectFill -- Fill a rectangular region in a RastPort.
-
- SYNOPSIS
-
- RectFill( rp, xmin, ymin, xmax, ymax)
- a1 d0:16 d1:16 d2:16 d3:16
-
- void RectFill( struct RastPort *, SHORT, SHORT, SHORT, SHORT );
-
- FUNCTION
- Fills the rectangular region specified by the
- parameters with the chosen pen colors, areafill
- pattern, and drawing mode. If no areafill pattern is
- specified, fill the rectangular region with the FgPen
- color, taking into account the drawing mode.
-
- INPUTS
- rp - pointer to a RastPort structure
- (xmin,ymin) (xmax,ymax) are the coordinates of the upper
- left corner and the lower right corner, respectively, of the
- rectangle.
- NOTE
-
- The following relation MUST be true:
- (xmax >= xmin) and (ymax >= ymin)
-
- BUGS
- Complement mode with FgPen complements all bitplanes.
-
- SEE ALSO
- AreaEnd() graphics/rastport.h
-
- graphics.library/RemBob graphics.library/RemBob
-
- NAME
- RemBob -- Macro to remove a Bob from the gel list.
-
- SYNOPSIS
- RemBob(bob)
-
- RemBob(struct Bob *);
-
- FUNCTION
- Marks a Bob as no-longer-required. The gels internal code then
- removes the Bob from the list of active gels the next time
- DrawGList is executed. This is implemented as a macro.
- If the user is double-buffering the Bob, it could take two
- calls to DrawGList before the Bob actually disappears from
- the RastPort.
-
- INPUTS
- Bob = pointer to the Bob to be removed
-
- RESULT
-
- BUGS
-
- SEE ALSO
- RemIBob() DrawGList() graphics/gels.h graphics/gfxmacros.h
-
- graphics.library/RemFont graphics.library/RemFont
-
- NAME
- RemFont -- Remove a font from the system list.
-
- SYNOPSIS
- RemFont(textFont)
- A1
-
- void RemFont(struct TextFont *);
-
- FUNCTION
- This function removes a font from the system, ensuring that
- access to it is restricted to those applications that
- currently have an active pointer to it: i.e. no new SetFont
- requests to this font are satisfied.
-
- INPUTS
- textFont - the TextFont structure to remove.
-
- RESULT
-
- BUGS
-
- SEE ALSO
- SetFont() AddFont() graphics/text.h
-
- graphics.library/RemIBob graphics.library/RemIBob
-
- NAME
- RemIBob -- Immediately remove a Bob from the gel list and the RastPort.
-
- SYNOPSIS
- RemIBob(bob, rp, vp)
- A0 A1 A2
-
- void RemIBob(struct Bob *, struct RastPort *, struct ViewPort *);
-
- FUNCTION
- Removes a Bob immediately by uncoupling it from the gel list and
- erases it from the RastPort.
-
- INPUTS
- bob = pointer to the Bob to be removed
- rp = pointer to the RastPort if the Bob is to be erased
- vp = pointer to the ViewPort for beam-synchronizing
-
- RESULT
-
- BUGS
-
- SEE ALSO
- InitGels() RemVSprite() graphics/gels.h
-
- graphics.library/RemVSprite graphics.library/RemVSprite
-
- NAME
- RemVSprite -- Remove a VSprite from the current gel list.
-
- SYNOPSIS
- RemVSprite(vs)
- A0
-
- void RemVSprite(struct VSprite *);
-
- FUNCTION
- Unlinks the VSprite from the current gel list.
-
- INPUTS
- vs = pointer to the VSprite structure to be removed from the gel list
-
- RESULT
-
- BUGS
-
- SEE ALSO
- InitGels() RemIBob() graphics/gels.h
-
- graphics.library/ScalerDiv graphics.library/ScalerDiv
-
- NAME
- ScalerDiv -- Get the scaling result that BitMapScale would. (V36)
-
- SYNOPSIS
- result = ScalerDiv(factor, numerator, denominator)
- D0 D0 D1 D2
-
- UWORD ScalerDiv(UWORD, UWORD, UWORD);
-
- FUNCTION
- Calculate the expression (factor*numerator/denominator) such
- that the result is the same as the width of the destination
- result of BitMapScale when the factor here is the width of
- the source, and the numerator and denominator are the
- XDestFactor and XSrcFactor for BitMapScale.
-
- INPUTS
- factor - a number in the range 0..16383
- numerator, denominator - numbers in the range 1..16383
-
- RESULT
- this returns factor*numerator/denominator
-
- graphics.library/ScrollRaster graphics.library/ScrollRaster
-
- NAME
- ScrollRaster -- Push bits in rectangle in raster around by
- dx,dy towards 0,0 inside rectangle.
- SYNOPSIS
- ScrollRaster(rp, dx, dy, xmin, ymin, xmax, ymax)
- A1 D0 D1 D2 D3 D4 D5
-
- void ScrollRaster
- (struct RastPort *, WORD, WORD, WORD, WORD, WORD, WORD);
-
- FUNCTION
- Move the bits in the raster by (dx,dy) towards (0,0)
- The space vacated is RectFilled with BGPen.
- Limit the scroll operation to the rectangle defined
- by (xmin,ymin)(xmax,ymax). Bits outside will not be
- affected. If xmax,ymax is outside the rastport then use
- the lower right corner of the rastport.
- If you are dealing with a SimpleRefresh layered RastPort you
- should check rp->Layer->Flags & LAYER_REFRESH to see if
- there is any damage in the damage list. If there is you should
- call the appropriate BeginRefresh(Intuition) or BeginUpdate(graphics)
- routine sequence.
-
- INPUTS
- rp - pointer to a RastPort structure
- dx,dy are integers that may be postive, zero, or negative
- xmin,ymin - upper left of bounding rectangle
- xmax,ymax - lower right of bounding rectangle
-
- EXAMPLE
- ScrollRaster(rp,0,1) /* shift raster up by one row */
- ScrollRaster(rp,-1,-1) /* shift raster down and to the right by 1 pixel
-
- BUGS
- In 1.2/V1.3 if you ScrollRaster a SUPERBITMAP exactly left or
- right, and there is no TmpRas attached to the RastPort, the system
- will allocate one for you, but will never free it or record its
- location. This bug has been fixed for V1.4. The workaround for
- 1.2/1.3 is to attach a valid TmpRas of size at least
- MAXBYTESPERROW to the RastPort before the call.
-
- Begining with V1.4 ScrollRaster adds the shifted areas into the
- damage list for SIMPLE_REFRESH windows. Due to unacceptable
- system overhead, the decision was made NOT to propagate this
- shifted area damage for SMART_REFRESH windows.
-
- SEE ALSO
- graphics/rastport.h
-
- graphics.library/ScrollVPort graphics.library/ScrollVPort
-
- NAME
- ScrollVPort -- Reinterpret RasInfo information in ViewPort to reflect
- the current Offset values.
-
- SYNOPSIS
- ScrollVPort( vp )
- a0
-
- void ScrollVPort(struct ViewPort *);
-
- FUNCTION
- After the programmer has adjusted the Offset values in
- the RasInfo structures of ViewPort, change the
- the copper lists to reflect the the Scroll positions.
- Changing the BitMap ptr in RasInfo and not changing the
- the Offsets will effect a double buffering affect.
-
- INPUTS
- vp - pointer to a ViewPort structure
- that is currently be displayed.
- RESULTS
- modifies hardware and intermediate copperlists to reflect
- new RasInfo
-
- BUGS
- pokes not fast enough to avoid some visible hashing of display
-
- SEE ALSO
- MakeVPort() MrgCop() LoadView() graphics/view.h
-
- graphics.library/SetAPen graphics.library/SetAPen
-
- NAME
- SetAPen -- Set the primary pen for a RastPort.
-
- SYNOPSIS
- SetAPen( rp, pen )
- a1 d0
-
- void SetAPen( struct RastPort *, UBYTE );
-
- FUNCTION
- Set the primary drawing pen for lines, fills, and text.
-
- INPUTS
- rp - pointer to RastPort structure.
- pen - (0-255)
-
- RESULT
- Changes the minterms in the RastPort to reflect new primary pen.
- Sets line drawer to restart pattern.
-
- BUGS
-
- SEE ALSO
- SetBPen() graphics/rastport.h
-
- graphics.library/SetBPen graphics.library/SetBPen
-
- NAME
- SetBPen -- Set secondary pen for a RastPort
-
- SYNOPSIS
- SetBPen( rp, pen )
- a1 d0
-
- void SetBPen( struct RastPort *, UBYTE );
-
- FUNCTION
- Set the secondary drawing pen for lines, fills, and text.
-
- INPUTS
- rp - pointer to RastPort structure.
- pen - (0-255)
-
- RESULT
- Changes the minterms in the RastPort to reflect new secondary pen.
- Sets line drawer to restart pattern.
-
- BUGS
-
- SEE ALSO
- SetAPen() graphics/rastport.h
-
- graphics.library/SetCollision graphics.library/SetCollision
-
- NAME
- SetCollision -- Set a pointer to a user collision routine.
-
- SYNOPSIS
- SetCollision(num, routine, GInfo)
- D0 A0 A1
-
- void SetCollision(ULONG, VOID (*)(), struct GelsInfo *);
-
- FUNCTION
- Sets a specified entry (num) in the user's collision vectors table
- equal to the address of the specified collision routine.
-
- INPUTS
- num = collision vector number
- routine = pointer to the user's collision routine
- GInfo = pointer to a GelsInfo structure
-
- RESULT
-
- BUGS
-
- SEE ALSO
- InitGels() graphics/gels.h graphics/rastport.h
-
- graphics.library/SetDrMd graphics.library/SetDrMd
-
- NAME
- SetDrMd -- Set drawing mode for a RastPort
-
- SYNOPSIS
- SetDrMd( rp, mode )
- a1 d0:8
-
- void SetDrMd( struct RastPort *, UBYTE );
-
- FUNCTION
- Set the drawing mode for lines, fills and text.
- Get the bit definitions from rastport.h
-
- INPUTS
- rp - pointer to RastPort structure.
- mode - 0-255, some combinations may not make much sense.
-
- RESULT
- The mode set is dependant on the bits selected.
- Changes minterms to reflect new drawing mode.
- Sets line drawer to restart pattern.
-
- BUGS
-
- SEE ALSO
- SetAPen() SetBPen() graphics/rastport.h
-
- graphics.library/SetFont graphics.library/SetFont
-
- NAME
- SetFont -- Set the text font and attributes in a RastPort.
-
- SYNOPSIS
- SetFont(rp, font)
- A1 A0
-
- void SetFont(struct RastPort *, struct TextFont *);
-
- FUNCTION
- This function sets the font in the RastPort to that described
- by font, and updates the text attributes to reflect that
- change. This function clears the effect of any previous
- soft styles.
-
- INPUTS
- rp - the RastPort in which the text attributes are to be changed
- font - pointer to a TextFont structure returned from OpenFont()
- or OpenDiskFont()
-
- RESULT
-
- NOTES
- This function had previously been documented that it would
- accept a null font. This practice is discouraged.
- o Use of a RastPort with a null font with text routines has
- always been incorrect and risked the guru.
- o Keeping an obsolete font pointer in the RastPort is no more
- dangerous than keeping a zero one there.
- o SetFont(rp, 0) causes spurious low memory accesses under
- some system software releases.
-
- As of V36, the following Amiga font variants are no longer
- directly supported:
- fonts with NULL tf_CharSpace and non-NULL tf_CharKern.
- fonts with non-NULL tf_CharSpace and NULL tf_CharKern.
- fonts with NULL tf_CharSpace and NULL tf_CharKern with
- a tf_CharLoc size component greater than tf_XSize.
- Attempts to SetFont these one of these font variants will
- cause the system to modify your font to make it acceptable.
-
- BUGS
- Calling SetFont() on in-code TextFonts (ie fonts not
- OpenFont()ed) will result in a loss of 24 bytes from
- the system as of V36.
- This can be resolved by calling StripFont().
-
- SEE ALSO
- OpenFont() StripFont()
- diskfont.library/OpenDiskFont() graphics/text.h
-
- graphics.library/SetOPen graphics.library/SetOPen
-
- NAME
- SetOPen -- Change the Area OutLine pen and turn on Outline
- mode for areafills.
-
- SYNOPSIS
- SetOPen(rp, pen)
-
- void SetOPen( struct RastPort *, UBYTE );
-
- FUNCTION
- This is implemented as a c-macro.
- Pen is the pen number that will be used to draw a border
- around an areafill during AreaEnd().
-
- INPUTS
- rp = pointer to RastPort structure
- pen = number between 0-255
-
- BUGS
-
- SEE ALSO
- AreaEnd() graphics/gfxmacros.h graphics/rastport.h
-
- graphics.library/SetRast graphics.library/SetRast
-
- NAME
- SetRast - Set an entire drawing area to a specified color.
-
- SYNOPSIS
- SetRast( rp, pen )
- a1 d0
-
- void SetRast( struct RastPort *, UBYTE );
-
- FUNCTION
- Set the entire contents of the specified RastPort to the
- specified pen.
-
- INPUTS
- rp - pointer to RastPort structure
- pen - the pen number (0-255) to jam into bitmap
-
- RESULT
- All pixels within the drawing area are set to the
- selected pen number.
-
- BUGS
-
- SEE ALSO
- RectFill() graphics/rastport.h
-
- graphics.library/SetRGB4 graphics.library/SetRGB4
-
- NAME
- SetRGB4 -- Set one color register for this viewport.
-
- SYNOPSIS
- SetRGB4( vp, n, r, g, b)
- a0 d0 d1:4 d2:4 d3:4
-
- void SetRGB4( struct ViewPort *, SHORT, UBYTE, UBYTE, UBYTE );
-
- FUNCTION
- Change the color look up table so that this viewport displays
- the color (r,g,b) for pen number n.
-
- INPUTS
- vp - pointer to viewport structure
- n - the color number (range from 0 to 31)
- r - red level (0-15)
- g - green level (0-15)
- b - blue level (0-15)
-
- RESULT
- If there is a ColorMap for this viewport, then the value will
- be stored in the ColorMap.
- The selected color register is changed to match your specs.
- If the color value is unused then nothing will happen.
-
- BUGS
- NOTE: Under V36 and up, it is not safe to call this function
- from an interrupt, due to semaphore protection of graphics
- copper lists.
-
- SEE ALSO
- LoadRGB4() GetRGB4() graphics/view.h
- graphics.library/SetRGB4CM graphics.library/SetRGB4CM
-
- NAME
- SetRGB4CM -- Set one color register for this ColorMap.
-
- SYNOPSIS
- SetRGB4CM( cm, n, r, g, b)
- a0 d0 d1:4 d2:4 d3:4
-
- void SetRGB4CM( struct ColorMap *, SHORT, UBYTE, UBYTE, UBYTE );
-
- INPUTS
- cm = colormap
- n = the number of the color register to set. Ranges from 0 to 31
- on current amiga displays.
- r = red level (0-15)
- g = green level (0-15)
- b = blue level (0-15)
-
- RESULT
- Store the (r,g,b) triplet at index n of the ColorMap structure.
- This function can be used to set up a ColorMap before before
- linking it into a viewport.
-
- BUGS
-
- SEE ALSO
- GetColorMap() GetRGB4() SetRGB4() graphics/view.h
- graphics.library/SetSoftStyle graphics.library/SetSoftStyle
-
- NAME
- SetSoftStyle -- Set the soft style of the current font.
-
- SYNOPSIS
- newStyle = SetSoftStyle(rp, style, enable)
- D0 A1 D0 D1
-
- ULONG SetSoftStyle(struct RastPort *, ULONG, ULONG);
-
- FUNCTION
- This function alters the soft style of the current font. Only
- those bits that are also set in enable are affected. The
- resulting style is returned, since some style request changes
- will not be honored when the implicit style of the font
- precludes changing them.
-
- INPUTS
- rp - the RastPort from which the font and style
- are extracted.
- style - the new font style to set, subject to enable.
- enable - those bits in style to be changed. Any set bits here
- that would not be set as a result of AskSoftStyle will
- be ignored, and the newStyle result will not be as
- expected.
-
- RESULTS
- newStyle - the resulting style, both as a result of previous
- soft style selection, the effect of this function,
- and the style inherent in the set font.
-
- BUGS
-
- SEE ALSO
- AskSoftStyle() graphics/text.h
-
- graphics.library/SortGList graphics.library/SortGList
-
- NAME
- SortGList -- Sort the current gel list, ordering its y,x coordinates.
-
- SYNOPSIS
- SortGList(rp)
- A1
-
- void SortGList(struct RastPort *);
-
- FUNCTION
- Sorts the current gel list according to the gels' y,x coordinates.
- This sorting is essential before calls to DrawGList or DoCollision.
-
- INPUTS
- rp = pointer to the RastPort structure containing the GelsInfo
-
- RESULT
-
- BUGS
-
- SEE ALSO
- InitGels() DoCollision() DrawGList() graphics/rastport.h
-
- graphics.library/StripFont graphics.library/StripFont
-
- NAME
- StripFont -- remove the tf_Extension from a font (V36)
-
- SYNOPSIS
- StripFont(font)
- A0
-
- VOID StripFont(struct TextFont *);
-
- graphics.library/SyncSBitMap graphics.library/SyncSBitMap
-
- NAME
- SyncSBitMap -- Syncronize Super BitMap with whatever is
- in the standard Layer bounds.
-
- SYNOPSIS
- SyncSBitMap( layer )
- a0
-
- void SyncSBitMap( struct Layer * );
-
- FUNCTION
- Copy all bits from ClipRects in Layer into Super BitMap
- BitMap. This is used for those functions that do not
- want to deal with the ClipRect structures but do want
- to be able to work with a SuperBitMap Layer.
-
- INPUTS
- layer - pointer to a Layer that has a SuperBitMap
- The Layer should already be locked by the caller.
-
- RESULT
- After calling this function, the programmer can manipulate
- the bits in the superbitmap associated with the layer.
- Afterwards, the programmer should call CopySBitMap to
- copy the bits back into the onscreen layer.
-
- BUGS
-
- SEE ALSO
- CopySBitMap() graphics/clip.h
-
- graphics.library/Text graphics.library/Text
-
- NAME
- Text -- Write text characters (no formatting).
-
- SYNOPSIS
- Text(rp, string, length)
- A1 A0 D0-0:16
-
- void Text(struct RastPort *, STRPTR, WORD);
-
- FUNCTION
- This graphics function writes printable text characters to the
- specified RastPort at the current position. No control meaning
- is applied to any of the characters, thus only text on the
- current line is output.
-
- The current position in the RastPort is updated to the next
- character position.
- If the characters displayed run past the RastPort boundary,
- the current position is truncated to the boundary, and
- thus does not equal the old position plus the text length.
-
- INPUTS
- rp - a pointer to the RastPort which describes where the
- text is to be output
- string - the address of string to output
- length - the number of characters in the string.
- If zero, there are no characters to be output.
-
- NOTES
- o This function may use the blitter.
- o Changing the text direction with RastPort->TxSpacing is
- not supported.
-
- BUGS
- For V34 and earlier:
- o The maximum string length (in pixels) is limited to
- (1024 - 16 = 1008) pixels wide.
- o A text string whose last character(s) have a
- tf_CharLoc size component that extends to the right of
- the rightmost of the initial and final CP positions
- will be (inappropriately) clipped.
-
- SEE ALSO
- Move() TextLength() graphics/text.h graphics/rastport.h
-
- graphics.library/TextExtent graphics.library/TextExtent
-
- NAME
- TextExtent -- Determine raster extent of text data. (V36)
-
- SYNOPSIS
- TextExtent(rp, string, count, textExtent)
- A1 A0 D0:16 A2
-
- void TextExtent(struct RastPort *, STRPTR, WORD,
- struct TextExtent *);
-
- FUNCTION
- This function determines a more complete metric of the space
- that a text string would render into than the TextLength()
- function.
-
- INPUTS
- rp - a pointer to the RastPort which describes where the
- text attributes reside.
- string - the address of the string to determine the length of.
- count - the number of characters in the string.
- If zero, there are no characters in the string.
- textExtent - a structure to hold the result.
-
- RESULTS
- textExtent is filled in as follows:
- te_Width - same as TextLength() result: the rp_cp_x
- advance that rendering this text would cause.
- te_Height - same as tf_YSize. The height of the
- font.
- te_Extent.MinX - the offset to the left side of the
- rectangle this would render into. Often zero.
- te_Extent.MinY - same as -tf_Baseline. The offset
- from the baseline to the top of the rectangle
- this would render into.
- te_Extent.MaxX - the offset of the left side of the
- rectangle this would render into. Often the
- same as te_Width-1.
- te_Extent.MaxY - same as tf_YSize-tf_Baseline-1.
- The offset from the baseline to the bottom of
- the rectanangle this would render into.
-
- SEE ALSO
- TextLength() Text() TextFit()
- graphics/text.h graphics/rastport.h
-
- graphics.library/TextFit graphics.library/TextFit
-
- NAME
- TextFit - count characters that will fit in a given extent (V36)
-
- SYNOPSIS
- chars = TextFit(rastport, string, strLen, textExtent,
- D0 A1 A0 D0 A2
- constrainingExtent, strDirection,
- A3 D1
- constrainingBitWidth, constrainingBitHeight)
- D2 D3
-
- ULONG TextFit(struct RastPort *, STRPTR, UWORD,
- struct TextExtent *, struct TextExtent *, WORD, UWORD, UWORD);
-
- FUNCTION
- This function determines how many of the characters of the
- provided string will fit into the space described by the
- constraining parameters. It also returns the extent of
- that number of characters.
-
- INPUTS
- rp - a pointer to the RastPort which describes where the
- text attributes reside.
- string - the address of string to determine the constraint of
- strLen - The number of characters in the string.
- If zero, there are no characters in the string.
- textExtent - a structure to hold the extent result.
- constrainingExtent - the extent that the text must fit in.
- This can be NULL, indicating only the constrainingBit
- dimensions will describe the constraint.
- strDirection - the offset to add to the string pointer to
- get to the next character in the string. Usually 1.
- Set to -1 and the string to the end of the string to
- perform a TextFit() anchored at the end. No other value
- is valid.
- constrainingBitWidth - an alternative way to specify the
- rendering box constraint width that is independent of
- the rendering origin. Range 0..32767.
- constrainingBitHeight - an alternative way to specify the
- rendering box constraint height that is independent of
- the rendering origin. Range 0..32767.
-
- RESULTS
- chars - the number of characters from the origin of the
- given string that will fit in both the constraining
- extent (which specifies a CP bound and a rendering
- box relative to the origin) and in the rendering width
- and height specified.
-
- NOTES
- The result is zero chars and an empty textExtent when the fit
- cannot be performed. This occurs not only when no text will
- fit in the provided constraints, but also when:
- - the RastPort rp's rp_TxSpacing sign and magnitude is so
- great it reverses the path of the text.
- - the constrainingExtent does not include x = 0.
-
- SEE ALSO
- TextExtent() TextLength() Text()
- graphics/text.h graphics/rastport.h
-
- graphics.library/TextLength graphics.library/TextLength
-
- NAME
- TextLength -- Determine raster length of text data.
-
- SYNOPSIS
- length = TextLength(rp, string, count)
- D0 A1 A0 D0:16
-
- WORD TextLength(struct RastPort *, STRPTR, WORD);
-
- FUNCTION
- This graphics function determines the length that text data
- would occupy if output to the specified RastPort with the
- current attributes. The length is specified as the number of
- raster dots: to determine what the current position would be
- after a Write() using this string, add the length to cp_x
- (cp_y is unchanged by Write()). Use the newer TextExtent() to
- get more information.
-
- INPUTS
- rp - a pointer to the RastPort which describes where the
- text attributes reside.
- string - the address of string to determine the length of
- count - the string length. If zero, there are no characters
- in the string.
-
- RESULTS
- length - the number of pixels in x this text would occupy, not
- including any negative kerning that may take place at
- the beginning of the text string, nor taking into
- account the effects of any clipping that may take
- place.
-
- NOTES
- Prior to V36, the result length occupied only the low word of
- d0 and was not sign extended into the high word.
-
- BUGS
- A length that would overflow single word arithmatic is not
- calculated correctly.
-
- SEE ALSO
- TextExtent() Text() TextFit()
- graphics/text.h graphics/rastport.h
-
- graphics.library/UnlockLayerRom graphics.library/UnlockLayerRom
-
- NAME
- UnlockLayerRom -- Unlock Layer structure by rom(gfx lib) code.
-
- SYNOPSIS
- UnlockLayerRom( layer )
- a5
-
- void UnlockLayerRom( struct Layer * );
-
- FUNCTION
- Release the lock on this layer. If the same task has called
- LockLayerRom more than once than the same number of calls to
- UnlockLayerRom must happen before the layer is actually freed
- so that other tasks may use it.
- This call does destroy scratch registers.
- This call is identical to UnlockLayer (layers.library).
-
- INPUTS
- layer - pointer to Layer structure
-
- BUGS
-
- SEE ALSO
- LockLayerRom() layers.library/UnlockLayer() graphics/clip.h
-
- graphics.library/VBeamPos graphics.library/VBeamPos
-
- NAME
- VBeamPos -- Get vertical beam position at this instant.
-
- SYNOPSIS
- pos = VBeamPos()
- d0
-
- LONG VBeamPos( void );
-
- FUNCTION
- Get the vertical beam position from the hardware.
-
- INPUTS
- none
-
- RESULT
- interrogates hardware for beam position and returns value.
- valid results in are the range of 0-511.
- Because of multitasking, the actual value returned may have
- no use. If you are the highest priority task then the value
- returned should be close, within 1 line.
-
- BUGS
-
- SEE ALSO
-
-
- graphics.library/VideoControl graphics.library/VideoControl
-
- NAME
- VideoControl -- Modify the operation of a ViewPort's ColorMap (V36)
-
- SYNOPSIS
- error = VideoControl( cm , tags )
- d0 a0 a1
-
- ULONG VideoControl( struct ColorMap *, struct TagItem * );
-
- FUNCTION
- Process the commands in the VideoControl command TagItem buffer
- using cm as the target, with respect to its "attached" ViewPort.
-
- viewport commands:
-
- VTAG_ATTACH_CM [_SET | _GET] -- set\get attached viewport
- VTAG_VIEWPORTEXTRA [_SET | _GET] -- set\get attached vp_extra
- VTAG_NORMAL_DISP [_SET | _GET] -- set\get DisplayInfoHandle
- (natural mode)
- VTAG_COERCE_DISP [_SET | _GET] -- set\get DisplayInfoHandle
- (coerced mode)
-
- genlock commands:
-
- VTAG_BORDERBLANK [_SET | _CLR | _GET] -- on\off\inquire blanking
- VTAG_BORDERNOTRANS [_SET | _CLR | _GET] -- on\off\inquire notransparency
- VTAG_CHROMAKEY [_SET | _CLR | _GET] -- on\off\inquire chroma mode
- VTAG_BITPLANEKEY [_SET | _CLR | _GET] -- on\off\inquire bitplane mode
- VTAG_CHROMA_PEN [_SET | _CLR | _GET] -- set\clr\get chromakey pen #
- VTAG_CHROMA_PLANE [_SET | | _GET] -- set\get bitplanekey plane #
-
- copper commands
-
- VTAG_USERCLIP [_SET | _CLR | _GET] -- on\off\inquire clipping of
- UserCopperList at bottom
- edge of ColorMap->cm_vp
- (defaults to off)
-
- buffer commands:
-
- VTAG_NEXTBUF_CM -- link to more VTAG commands
- VTAG_END_CM -- terminate command buffer
-
- batch mode commands:
-
- (if you want your videocontol taglist to be processed in "batch"
- mode, that is, at the next MakeVPort() for the ColorMap->cm_vp;
- you may intall a static list of videocontrol TagItems into the
- ColorMap with the BATCH_ITEMS_SET command; and then enable/disable
- batch mode processing of those items via the BATCH_CM control
- command)
-
- VTAG_BATCH_CM [_SET | _CLR | _GET] -- on\off\inquire batch mode
- VTAG_BATCH_ITEMS [_SET | _ADD | _GET] -- set\add\get batched TagLists
-
- private commands (used internally by intuition -- do not call):
-
- VTAG_VPMODEID [_SET | _CLR | _GET] -- force GetVPModeID() return
-
-
- INPUTS
- cm = pointer to struct ColorMap obtained via GetColorMap().
- tags = pointer to a table of videocontrol tagitems.
-
- RESULT
- error = NULL if no error occured in the control operation.
- (non-NULL if bad colormap pointer, no tagitems or bad tag)
-
- The operating characteristics of the ColorMap and its attached
- ViewPort are modified. The result will be incorporated into the
- ViewPort when its copper lists are reassembled via MakeVPort().
-
- BUGS
-
- SEE ALSO
- graphics/videocontrol.h, GetColorMap(), FreeColorMap()
-
- graphics.library/WaitBlit graphics.library/WaitBlit
-
- NAME
- WaitBlit -- Wait for the blitter to be finished before proceeding
- with anything else.
-
- SYNOPSIS
- WaitBlit()
-
- void WaitBlit( void );
-
- FUNCTION
- WaitBlit returns when the blitter is idle. This function should
- normally only be used when dealing with the blitter in a
- synchronous manner, such as when using OwnBlitter and DisownBlitter.
- WaitBlit does not wait for all blits queued up using QBlit or
- QBSBlit. You should call WaitBlit if you are just about to modify or
- free some memory that the blitter may be using.
-
- INPUTS
- none
-
- RESULT
- Your program waits until the blitter is finished.
- This routine does not use any the CPU registers.
- do/d1/a0/a1 are preserved by this routine.
- It may change the condition codes though.
-
- BUGS
- When examining bits with the CPU right after a blit, or when freeeing
- temorary memory used by the blitter, a WaitBlit() may be required.
-
- Note that many graphics calls fire up the blitter, and let it run.
- The CPU does not need to wait for the blitter to finish before
- returning.
-
- Because of a bug in agnus (prior to all revisions of fat agnus)
- this code may return too soon when the blitter has, in fact, not
- started the blit yet, even though BltSize has been written.
-
- This most often occurs in a heavily loaded systen with extended memory,
- HIRES, and 4 bitplanes.
-
- WaitBlit currently tries to avoid this agnus problem by testing
- the BUSY bit multiple times to make sure the blitter has started.
- If the blitter is BUSY at first check, this function busy waits.
-
- This initial hardware bug was fixed as of the first "Fat Agnus" chip,
- as used in all A500 and A2000 computers.
-
- Because of a different bug in agnus (currently all revisions thru ECS)
- this code may return too soon when the blitter has, in fact, not
- stopped the blit yet, even though blitter busy has been cleared.
-
- This most often occurs in a heavily loaded systen with extended memory,
- in PRODUCTIVITY mode, and 2 bitplanes.
-
- WaitBlit currently tries to avoid this agnus problem by testing
- the BUSY bit multiple times to make sure the blitter has really
- written its final word of desination data.
-
- SEE ALSO
- OwnBlitter() DisownBlitter() hardware/blit.h
-
- graphics.library/WaitBOVP graphics.library/WaitBOVP
-
- NAME
- WaitBOVP -- Wait till vertical beam reached bottom of
- this viewport.
-
- SYNOPSIS
- WaitBOVP( vp )
- a0
-
- void WaitBOVP( struct ViewPort * );
-
- FUNCTION
- Returns when the vertical beam has reached the bottom of this viewport
-
- INPUTS
- vp - pointer to ViewPort structure
-
- RESULT
- This function will return sometime after the beam gets beyond
- the bottom of the viewport. Depending on the multitasking load
- of the system, the actual beam position may be different than
- what would be expected in a lightly loaded system.
-
- BUGS
- Horrors! This function currently busy waits waiting for the
- beam to get to the right place. It should use the copper
- interrupt to trigger and send signals like WaitTOF does.
-
- SEE ALSO
- WaitTOF() VBeamPos()
-
- graphics.library/WaitTOF graphics.library/WaitTOF
-
- NAME
- WaitTOF -- Wait for the top of the next video frame.
-
- SYNOPSIS
- WaitTOF()
-
- void WaitTOF( void );
-
- FUNCTION
- Wait for vertical blank to occur and all vertical blank
- interrupt routines to complete before returning to caller.
-
- INPUTS
- none
-
- RESULT
- Places this task on the TOF wait queue. When the vertical blank
- interupt comes around, the interrupt service routine will fire off
- signals to all the tasks doing WaitTOF. The highest priority task
- ready will get to run then.
-
- BUGS
-
- SEE ALSO
- exec.library/Wait() exec.library/Signal()
-
- graphics.library/WeighTAMatch graphics.library/WeighTAMatch
-
- NAME
- WeighTAMatch -- Get a measure of how well two fonts match. (V36)
-
- SYNOPSIS
- weight = WeighTAMatch(reqTextAttr, targetTextAttr, targetTags)
- D0 A0 A1 A2
-
- WORD WeighTAMatch(struct TTextAttr *, struct TextAttr *,
- struct TagItem *);
-
- FUNCTION
- This function provides a metric to describe how well two fonts
- match. This metric ranges from MAXFONTMATCHWEIGHT (perfect match)
- through lower positive numbers to zero (unsuitable match).
-
- INPUTS
- reqTextAttr - the text attributes requested.
- targetTextAttr - the text attributes of a potential match.
- targetTags - tags describing the extended target attributes, or
- zero if not available.
-
- The [t]ta_Name fields of the [T]TextAttr structures are not used.
-
- The tags affect the weight only when both a) the reqTextAttr
- has the FSF_TAGGED bit set in ta_Style, and b) targetTags is
- not zero. To fairly compare two different weights, the inclusion
- or exclusion of tags in the weighing must be the same for both.
-
- RESULTS
- weight -- a positive weight describes suitable matches, in
- increasing desirability. MAXFONTMATCHWEIGHT is a perfect
- match. A zero weight is an unsuitable match.
-
- SEE ALSO
- OpenFont()
-
- graphics.library/WritePixel graphics.library/WritePixel
-
- NAME
- WritePixel -- Change the pen num of one specific pixel in a
- specified RastPort.
-
- SYNOPSIS
- error = WritePixel( rp, x, y)
- d0 a1 D0 D1
-
- LONG WritePixel( struct RastPort *, SHORT, SHORT );
-
- FUNCTION
- Changes the pen number of the selected pixel in the specified
- RastPort to that currently specified by PenA, the primary
- drawing pen. Obeys minterms in RastPort.
-
- INPUTS
- rp - a pointer to the RastPort structure
- (x,y) - point within the RastPort at which the selected
- pixel is located.
-
- RESULT
- error = 0 if pixel succesfully changed
- = -1 if (x,y) is outside the RastPort
-
- BUGS
-
- SEE ALSO
- ReadPixel() graphics/rastport.h
-
- graphics.library/WritePixelArray8 graphics.library/WritePixelArray8
-
- NAME
- WritePixelArray8 -- write the pen number value of a rectangular array
- of pixels starting at a specified x,y location and continuing
- through to another x,y location within a certain RastPort. (V36)
-
- SYNOPSIS
- count = WritePixelArray8(rp,xstart,ystart,xstop,ystop,array,temprp)
- D0 A0 D0:16 D1:16 D2:16 D3:16 A2 A1
-
- LONG WritePixelArray8(struct RastPort *, UWORD, UWORD,
- UWORD, UWORD, UBYTE *, struct RastPort *);
-
- FUNCTION
- For each pixel in a rectangular region, decode the pen number selector
- from a linear array of pen numbers into the bit-planes used to describe
- a particular rastport.
-
- INPUTS
- rp - pointer to a RastPort structure
- (xstart,ystart) - starting point in the RastPort
- (xstop,ystop) - stopping point in the RastPort
- array - pointer to an array of UBYTEs from which to fetch the
- pixel data. Allocate at least
- ((((width+15)>>4)<<4)*(ystop-ystart+1)) bytes.
- temprp - temporary rastport (copy of rp with Layer set == NULL,
- temporary memory allocated for
- temprp->BitMap with Rows set == 1,
- temprp->BytesPerRow == (((width+15)>>4)<<1),
- and temporary memory allocated for
- temprp->BitMap->Planes[])
-
- RESULT
- For each pixel in the array:
- Pen - (0..255) number at that position is returned
-
- NOTE
- xstop must be >= xstart
- ystop must be >= ystart
-
- BUGS
-
- SEE ALSO
- WritePixel() graphics/rastport.h
-
- graphics.library/WritePixelLine8 graphics.library/WritePixelLine8
-
- NAME
- WritePixelLine8 -- write the pen number value of a horizontal line
- of pixels starting at a specified x,y location and continuing
- right for count pixels. (V36)
-
- SYNOPSIS
- count = WritePixelLine8(rp,xstart,ystart,width,array,temprp)
- D0 A0 D0:16 D1:16 D2 A2 A1
-
- LONG WritePixelLine8(struct RastPort *, UWORD, UWORD,
- UWORD, UBYTE *, struct RastPort *);
-
- FUNCTION
- For each pixel in a horizontal region, decode the pen number selector
- from a linear array of pen numbers into the bit-planes used to describe
- a particular rastport.
-
- INPUTS
- rp - pointer to a RastPort structure
- (x,y) - a point in the RastPort
- width - count of horizontal pixels to write
- array - pointer to an array of UBYTEs from which to fetch the pixel data
- allocate at least (((width+15)>>4)<<4) bytes.
- temprp - temporary rastport (copy of rp with Layer set == NULL,
- temporary memory allocated for
- temprp->BitMap with Rows set == 1,
- temprp->BytesPerRow == (((width+15)>>4)<<1),
- and temporary memory allocated for
- temprp->BitMap->Planes[])
-
- RESULT
- For each pixel in the array:
- Pen - (0..255) number at that position is returned
-
- NOTE
- width must be non negative
-
- BUGS
-
- SEE ALSO
- WritePixel() graphics/rastport.h
-
- graphics.library/XorRectRegion graphics.library/XorRectRegion
-
- NAME
- XorRectRegion -- Perform 2d XOR operation of rectangle
- with region, leaving result in region
-
- SYNOPSIS
- status = XorRectRegion(region,rectangle)
- d0 a0 a1
-
- BOOL XorRectRegion( struct Region *, struct Rectangle * );
-
- FUNCTION
- Add portions of rectangle to region if they are not in
- the region.
- Remove portions of rectangle from region if they are
- in the region.
-
- INPUTS
- region - pointer to Region structure
- rectangle - pointer to Rectangle structure
-
- RESULTS
- status - return TRUE if successful operation
- return FALSE if ran out of memory
-
- BUGS
-
- SEE ALSO
- OrRegionRegion() AndRegionRegion() graphics/regions.h
-
- graphics.library/XorRegionRegion graphics.library/XorRegionRegion
-
- NAME
- XorRegionRegion -- Perform 2d XOR operation of one region
- with second region, leaving result in second region
-
- SYNOPSIS
- status = XorRegionRegion(region1,region2)
- d0 a0 a1
-
- BOOL XorRegionRegion( struct Region *, struct Region * );
-
- FUNCTION
- Join the regions together. If any part of region1 overlaps
- region2 then remove that from the new region.
-
- INPUTS
- region1 = pointer to Region structure
- region2 = pointer to Region structure
-
- RESULTS
- status - return TRUE if successful operation
- return FALSE if ran out of memory
-
- BUGS
-
-
-