Summary of QuickDraw Drawing
Pascal Summary
Constants
CONST
{basic QuickDraw colors}
whiteColor = 30;
blackColor = 33;
yellowColor = 69;
magentaColor = 137;
redColor = 205;
cyanColor = 273;
greenColor = 341;
blueColor = 409;
{source modes for basic graphics ports}
srcCopy = 0; {where source pixel is black, force destination }
{ pixel black; where source pixel is white, force }
{ destination pixel white}
srcOr = 1; {where source pixel is black, force destination }
{ pixel black; where source pixel is white, leave }
{ destination pixel unaltered}
srcXor = 2; {where source pixel is black, invert destination }
{ pixel; where source pixel is white, leave }
{ destination pixel unaltered}
srcBic = 3; {where source pixel is black, force destination }
{ pixel white; where source pixel is white, leave }
{ destination pixel unaltered}
notSrcCopy = 4; {where source pixel is black, force destination }
{ pixel white; where source pixel is white, force }
{ destination pixel black}
notSrcOr = 5; {where source pixel is black, leave destination }
{ pixel unaltered; where source pixel is white, }
{ force destination pixel black}
notSrcXor = 6; {where source pixel is black, leave destination }
{ pixel unaltered; where source pixel is white, }
{ invert destination pixel}
notSrcBic = 7; {where source pixel is black, leave destination }
{ pixel unaltered; where source pixel is white, }
{ force destination pixel white}
{pattern modes}
patCopy = 8; {where pattern pixel is black, apply foreground }
{ color to destination pixel; where pattern pixel }
{ is white, apply background color to destination }
{ pixel}
patOr = 9; {where pattern pixel is black, invert destination }
{ pixel; where pattern pixel is white, leave }
{ destination pixel unaltered}
patXor = 10; {where pattern pixel is black, invert destination }
{ pixel; where pattern pixel is white, leave }
{ destination pixel unaltered}
patBic = 11; {where pattern pixel is black, apply background }
{ color to destination pixel; where pattern pixel }
{ is white, leave destination pixel unaltered}
notPatCopy = 12; {where pattern pixel is black, apply background }
{ color to destination pixel; where pattern pixel }
{ is white, apply foreground color to destination }
{ pixel}
notPatOr = 13; {where pattern pixel is black, leave destination }
{ pixel unaltered; where pattern pixel is white, }
{ apply foreground color to destination pixel}
notPatXor = 14; {where pattern pixel is black, leave destination }
{ pixel unaltered; where pattern pixel is white, }
{ invert destination pixel}
notPatBic = 15; {where pattern pixel is black, leave destination }
{ pixel unaltered; where pattern pixel is white, }
{ apply background color to destination pixel}
ditherCopy = 64; {add to source mode for dithering}
{pattern list resource ID for patterns in the System file}
sysPatListID = 0;
Data Types
TYPE PolyPtr = ^Polygon;
PolyHandle = ^PolyPtr;
Polygon =
RECORD
polySize: Integer; {size in bytes}
polyBBox: Rect; {bounding rectangle}
polyPoints: ARRAY[0..0] OF Point; {vertices for polygon}
END;
PenState =
RECORD
pnLoc: Point; {pen location}
pnSize: Point; {pen size}
pnMode: Integer; {pen's pattern mode}
pnPat: Pattern; {pen pattern}
END;
QDProcsPtr = ^QDProcs;
QDProcs =
RECORD
textProc: Ptr; {text drawing}
lineProc: Ptr; {line drawing}
rectProc: Ptr; {rectangle drawing}
rRectProc: Ptr; {roundRect drawing}
ovalProc: Ptr; {oval drawing}
arcProc: Ptr; {arc/wedge drawing}
rgnProc: Ptr; {region drawing}
bitsProc: Ptr; {bit transfer}
commentProc: Ptr; {picture comment processing}
txMeasProc: Ptr; {text width measurement}
getPicProc: Ptr; {picture retrieval}
putPicProc: Ptr; {picture saving}
END;
GrafVerb = (frame,paint,erase,invert,fill);
PatPtr = ^Pattern;
PatHandle = ^PatPtr;
Pattern = PACKED ARRAY[0..7] OF 0..255;
Routines
Managing the Graphics Pen
PROCEDURE HidePen;
PROCEDURE ShowPen;
PROCEDURE GetPen (VAR pt: Point);
PROCEDURE GetPenState (VAR pnState: PenState);
PROCEDURE SetPenState (pnState: PenState);
PROCEDURE PenSize (width,height: Integer);
PROCEDURE PenMode (mode: Integer);
PROCEDURE PenPat (pat: Pattern);
PROCEDURE PenNormal;
Changing the Background Bit Pattern
PROCEDURE BackPat (pat: Pattern);
Drawing Lines
PROCEDURE MoveTo (h,v: Integer);
PROCEDURE Move (dh,dv: Integer);
PROCEDURE LineTo (h,v: Integer);
PROCEDURE Line (dh,dv: Integer);
Creating and Managing Rectangles
PROCEDURE SetRect (VAR r: Rect; left,top,right,bottom: Integer);
PROCEDURE OffsetRect (VAR r: Rect; dh,dv: Integer);
PROCEDURE InsetRect (VAR r: Rect; dh,dv: Integer);
FUNCTION SectRect (src1,src2: Rect; VAR dstRect: Rect): Boolean;
PROCEDURE UnionRect (src1,src2: Rect; VAR dstRect: Rect);
FUNCTION PtInRect (pt: Point; r: Rect): Boolean;
PROCEDURE Pt2Rect (pt1,pt2: Point; VAR dstRect: Rect);
PROCEDURE PtToAngle (r: Rect; pt: Point; VAR angle: Integer);
FUNCTION EqualRect (rect1,rect2: Rect): Boolean;
FUNCTION EmptyRect (r: Rect): Boolean;
Drawing Rectangles
PROCEDURE FrameRect (r: Rect);
PROCEDURE PaintRect (r: Rect);
PROCEDURE FillRect (r: Rect; pat: Pattern);
PROCEDURE EraseRect (r: Rect);
PROCEDURE InvertRect (r: Rect);
Drawing Rounded Rectangles
PROCEDURE FrameRoundRect (r: Rect; ovalWidth,ovalHeight: Integer);
PROCEDURE PaintRoundRect (r: Rect; ovalWidth,ovalHeight: Integer);
PROCEDURE FillRoundRect (r: Rect; ovalWidth,ovalHeight: Integer;
pat: Pattern);
PROCEDURE EraseRoundRect (r: Rect; ovalWidth,ovalHeight: Integer);
PROCEDURE InvertRoundRect (r: Rect; ovalWidth,ovalHeight: Integer);
Drawing Ovals
PROCEDURE FrameOval (r: Rect);
PROCEDURE PaintOval (r: Rect);
PROCEDURE FillOval (r: Rect; pat: Pattern);
PROCEDURE EraseOval (r: Rect);
PROCEDURE InvertOval (r: Rect);
Drawing Arcs and Wedges
PROCEDURE FrameArc (r: Rect; startAngle,arcAngle: Integer);
PROCEDURE PaintArc (r: Rect; startAngle,arcAngle: Integer);
PROCEDURE FillArc (r: Rect; startAngle,arcAngle: Integer;
pat: Pattern);
PROCEDURE EraseArc (r: Rect; startAngle,arcAngle: Integer);
PROCEDURE InvertArc (r: Rect; startAngle,arcAngle: Integer);
Creating and Managing Polygons
FUNCTION OpenPoly : PolyHandle;
PROCEDURE ClosePoly;
PROCEDURE OffsetPoly (poly: PolyHandle; dh,dv: Integer);
PROCEDURE KillPoly (poly: PolyHandle);
Drawing Polygons
PROCEDURE FramePoly (poly: PolyHandle);
PROCEDURE PaintPoly (poly: PolyHandle);
PROCEDURE FillPoly (poly: PolyHandle; pat: Pattern);
PROCEDURE ErasePoly (poly: PolyHandle);
PROCEDURE InvertPoly (poly: PolyHandle);
Creating and Managing Regions
FUNCTION NewRgn : RgnHandle;
PROCEDURE OpenRgn;
PROCEDURE CloseRgn (dstRgn: rgnHandle);
PROCEDURE DisposeRgn (rgn: RgnHandle);
PROCEDURE CopyRgn (srcRgn,dstRgn: RgnHandle);
PROCEDURE SetEmptyRgn (rgn: RgnHandle);
PROCEDURE SetRectRgn (rgn: RgnHandle;
left,top,right,bottom: Integer);
PROCEDURE RectRgn (rgn: RgnHandle; r: Rect);
PROCEDURE OffsetRgn (rgn: RgnHandle; dh,dv: Integer);
PROCEDURE InsetRgn (rgn: RgnHandle; dh,dv: Integer);
PROCEDURE SectRgn (srcRgnA,srcRgnB,dstRgn: RgnHandle);
PROCEDURE UnionRgn (srcRgnA,srcRgnB,dstRgn: RgnHandle);
PROCEDURE DiffRgn (srcRgnA,srcRgnB,dstRgn: RgnHandle);
PROCEDURE XorRgn (srcRgnA,srcRgnB,dstRgn: RgnHandle);
FUNCTION PtInRgn (pt: Point; rgn: RgnHandle): Boolean;
FUNCTION RectInRgn (r: Rect; rgn: RgnHandle): Boolean;
FUNCTION EqualRgn (rgnA,rgnB: RgnHandle): Boolean;
FUNCTION EmptyRgn (rgn: RgnHandle): Boolean;
Drawing Regions
PROCEDURE FrameRgn (rgn: RgnHandle);
PROCEDURE PaintRgn (rgn: RgnHandle);
PROCEDURE FillRgn (rgn: RgnHandle; pat: Pattern);
PROCEDURE EraseRgn (rgn: RgnHandle);
PROCEDURE InvertRgn (rgn: RgnHandle);
Scaling and Mapping Points, Rectangles, Polygons, and Regions
PROCEDURE ScalePt (VAR pt: Point; srcRect,dstRect: Rect);
PROCEDURE MapPt (VAR pt: Point; srcRect,dstRect: Rect);
PROCEDURE MapRect (VAR r: Rect; srcRect,dstRect: Rect);
PROCEDURE MapRgn (rgn: RgnHandle; srcRect,dstRect: Rect);
PROCEDURE MapPoly (poly: PolyHandle; srcRect,dstRect: Rect);
Calculating Black-and-White Fills
PROCEDURE SeedFill (srcPtr,dstPtr: Ptr;
srcRow,dstRow,height,words,
seedH,seedV: Integer);
PROCEDURE CalcMask (srcPtr,dstPtr: Ptr;
srcRow,dstRow,height,words: Integer);
Copying Images
PROCEDURE CopyBits (srcBits,dstBits: BitMap;
srcRect,dstRect: Rect; mode: Integer;
maskRgn: RgnHandle);
PROCEDURE CopyMask (srcBits,maskBits,dstBits: BitMap;
srcRect,maskRect,dstRect: Rect);
PROCEDURE CopyDeepMask (srcBits: BitMap; maskBits: BitMap;
dstBits: BitMap; srcRect: Rect;
maskRect: Rect; dstRect: Rect;
mode: Integer; maskRgn: RgnHandle);
Drawing With the Eight-Color System
PROCEDURE ForeColor (color: LongInt);
PROCEDURE BackColor (color: LongInt);
PROCEDURE ColorBit (whichBit: Integer);
Determining Whether QuickDraw Has Finished Drawing
FUNCTION QDDone (port: GrafPtr): Boolean;
Getting Pattern Resources
FUNCTION GetPattern (patID: Integer): PatHandle;
PROCEDURE GetIndPattern (VAR thePattern: Pattern; patListID: Integer;
index: Integer);
Customizing QuickDraw Operations
PROCEDURE SetStdProcs (VAR procs: QDProcs);
PROCEDURE StdText (byteCount: Integer; textBuf: Ptr;
numer,denom: Point);
PROCEDURE StdLine (newPt: Point);
PROCEDURE StdRect (verb: GrafVerb; r: Rect);
PROCEDURE StdRRect (verb: GrafVerb; r: Rect;
ovalwidth,ovalHeight: Integer);
PROCEDURE StdOval (verb: GrafVerb; r: Rect);
PROCEDURE StdArc (verb: GrafVerb; r: Rect;
startAngle,arcAngle: Integer);
PROCEDURE StdPoly (verb: GrafVerb; poly: PolyHandle);
PROCEDURE StdRgn (verb: GrafVerb; rgn: RgnHandle);
PROCEDURE StdBits (VAR srcBits: BitMap;
VAR srcRect,dstRect: Rect; mode: Integer;
maskRgn: RgnHandle);
PROCEDURE StdComment (kind,dataSize: Integer; dataHandle: Handle);
FUNCTION StdTxtMeas (byteCount: Integer; textAddr: Ptr;
VAR numer, denom: Point;
VAR info: FontInfo): Integer;
PROCEDURE StdGetPic (dataPtr: Ptr; byteCount: Integer);
PROCEDURE StdPutPic (dataPtr: Ptr; byteCount: Integer);
C Summary
Constants
enum {
/* basic QuickDraw colors */
whiteColor = 30;
blackColor = 33;
yellowColor = 69;
magentaColor = 137;
redColor = 205;
cyanColor = 273;
greenColor = 341;
blueColor = 409;
/* source modes */
srcCopy = 0, /* where source pixel is black, force destination
pixel black; where source pixel is white, force
destination pixel white */
srcOr = 1, /* where source pixel is black, force destination
pixel black; where source pixel is white, leave
destination pixel unaltered */
srcXor = 2, /* where source pixel is black, invert destination
pixel; where source pixel is white, leave
destination pixel unaltered */
srcBic = 3, /* where source pixel is black, force destination
pixel white; where source pixel is white, leave
destination pixel unaltered */
notSrcCopy = 4, /* where source pixel is black, force destination
pixel white; where source pixel is white, force
destination pixel black */
notSrcOr = 5, /* where source pixel is black, leave destination
pixel unaltered; where source pixel is white,
force destination pixel black */
notSrcXor = 6, /* where source pixel is black, leave destination
pixel unaltered; where source pixel is white,
invert destination pixel*/
notSrcBic = 7, /* where source pixel is black, leave destination
pixel unaltered; where source pixel is white,
force destination pixel white */
/* pattern modes */
patCopy = 8, /* where pattern pixel is black, apply foreground
color to destination pixel; where pattern pixel
is white, apply background color to destination
pixel */
patOr = 9, /* where pattern pixel is black, invert destination
pixel; where pattern pixel is white, leave
destination pixel unaltered */
patXor = 10; /* where pattern pixel is black, invert destination
pixel; where pattern pixel is white, leave
destination pixel unaltered */
patBic = 11; /* where pattern pixel is black, apply background
color to destination pixel; where pattern pixel
is white, leave destination pixel unaltered */
notPatCopy = 12; /* where pattern pixel is black, apply background
color to destination pixel; where pattern pixel
is white, apply foreground color to destination
pixel */
notPatOr = 13; /* where pattern pixel is black, leave destination
pixel unaltered; where pattern pixel is white,
apply foreground color to destination pixel */
notPatXor = 14; /* where pattern pixel is black, leave destination
pixel unaltered; where pattern pixel is white,
invert destination pixel */
notPatBic = 15; /* where pattern pixel is black, leave destination
pixel unaltered; where pattern pixel is white,
apply background color to destination pixel */
ditherCopy = 64, /* add to source mode for dithering */
/* pattern list resource ID for patterns in the System file */
sysPatListID = 0
};
Data Types
struct Polygon {
short polySize; /* size in bytes */
Rect polyBBox; /* bounding rectangle */
Point polyPoints[1]; /* vertices for polygon */
};
typedef struct Polygon Polygon;
typedef Polygon *PolyPtr, **PolyHandle;
struct PenState {
Point pnLoc; /* pen location */
Point pnSize; /* pen size */
short pnMode; /* pen's pattern mode */
Pattern pnPat; /* pen pattern */
};
typedef struct PenState PenState;
struct QDProcs {
Ptr textProc; /* text drawing */
Ptr lineProc; /* line drawing */
Ptr rectProc; /* rectangle drawing */
Ptr rRectProc; /* roundRect drawing */
Ptr ovalProc; /* oval drawing */
Ptr arcProc; /* arc and wedge drawing */
Ptr polyProc; /* region drawing */
Ptr rgnProc; /* region drawing */
Ptr bitsProc; /* bit transfer */
Ptr commentProc; /* picture comment processing */
Ptr txMeasProc; /* text width measurement */
Ptr getPicProc; /* picture retrieval */
Ptr putPicProc; /* picture saving */
};
typedef struct QDProcs QDProcs;
typedef QDProcs *QDProcsPtr;
enum {frame,paint,erase,invert,fill};
typedef unsigned char GrafVerb;
struct Pattern{
unsigned char pat[8];
};
typedef struct Pattern Pattern;
typedef Pattern *PatPtr;
typedef const unsigned char *ConstPatternParam;
typedef PatPtr *PatHandle;
Functions
Managing the Graphics Pen
pascal void HidePen (void);
pascal void ShowPen (void);
pascal void GetPen (Point *pt);
pascal void GetPenState (PenState *pnState);
pascal void SetPenState (const PenState *pnState);
pascal void PenSize (short width, short height);
pascal void PenMode (short mode);
pascal void PenPat (ConstPatternParam pat);
pascal void PenNormal (void);
Changing the Background Bit Pattern
pascal void BackPat (ConstPatternParam pat);
Drawing Lines
pascal void MoveTo (short h, short v);
pascal void Move (short dh, short dv);
pascal void LineTo (short h, short v);
pascal void Line (short dh, short dv);
Creating and Managing Rectangles
pascal void SetRect (Rect *r, short left, short top, short right,
short bottom);
pascal void OffsetRect (Rect *r, short dh, short dv);
pascal void InsetRect (Rect *r, short dh, short dv);
pascal Boolean SectRect (const Rect *src1, const Rect *src2,
Rect *dstRect);
pascal void UnionRect (const Rect *src1, const Rect *src2,
Rect *dstRect);
pascal Boolean PtInRect (Point pt, const Rect *r);
pascal void Pt2Rect (Point pt1, Point pt2, Rect *dstRect);
pascal void PtToAngle (const Rect *r, Point pt, short *angle);
pascal Boolean EqualRect (const Rect *rect1, const Rect *rect2);
pascal Boolean EmptyRect (const Rect *r);
Drawing Rectangles
pascal void FrameRect (const Rect *r);
pascal void PaintRect (const Rect *r);
pascal void FillRect (const Rect *r, ConstPatternParam pat);
pascal void EraseRect (const Rect *r);
pascal void InvertRect (const Rect *r);
Drawing Rounded Rectangles
pascal void FrameRoundRect (const Rect *r, short ovalWidth,
short ovalHeight);
pascal void PaintRoundRect (const Rect *r, short ovalWidth,
short ovalHeight);
pascal void FillRoundRect (const Rect *r, short ovalWidth,
short ovalHeight, ConstPatternParam pat);
pascal void EraseRoundRect (const Rect *r, short ovalWidth,
short ovalHeight);
pascal void InvertRoundRect
(const Rect *r, short ovalWidth,
short ovalHeight);
Drawing Ovals
pascal void FrameOval (const Rect *r);
pascal void PaintOval (const Rect *r);
pascal void FillOval (const Rect *r, ConstPatternParam pat);
pascal void EraseOval (const Rect *r);
pascal void InvertOval (const Rect *r);
Drawing Arcs and Wedges
pascal void FrameArc (const Rect *r, short startAngle,
short arcAngle);
pascal void PaintArc (const Rect *r, short startAngle,
short arcAngle);
pascal void FillArc (const Rect *r, short startAngle,
short arcAngle, ConstPatternParam pat);
pascal void EraseArc (const Rect *r, short startAngle,
short arcAngle);
pascal void InvertArc (const Rect *r, short startAngle,
short arcAngle);
Creating and Managing Polygons
pascal PolyHandle OpenPoly (void);
pascal void ClosePoly (void);
pascal void OffsetPoly (PolyHandle poly, short dh, short dv);
pascal void KillPoly (PolyHandle poly);
Drawing and Painting Polygons
pascal void FramePoly (PolyHandle poly);
pascal void PaintPoly (PolyHandle poly);
pascal void FillPoly (PolyHandle poly, ConstPatternParam pat);
pascal void ErasePoly (PolyHandle poly);
pascal void InvertPoly (PolyHandle poly);
Creating and Managing Regions
pascal RgnHandle NewRgn (void);
pascal void OpenRgn (void);
pascal void CloseRgn (RgnHandle dstRgn);
pascal void DisposeRgn (RgnHandle rgn);
pascal void CopyRgn (RgnHandle srcRgn, RgnHandle dstRgn);
pascal void SetEmptyRgn (RgnHandle rgn);
pascal void SetRectRgn (RgnHandle rgn, short left, short top,
short right, short bottom);
pascal void RectRgn (RgnHandle rgn, const Rect *r);
pascal void OffsetRgn (RgnHandle rgn, short dh, short dv);
pascal void InsetRgn (RgnHandle rgn, short dh, short dv);
pascal void SectRgn (RgnHandle srcRgnA, RgnHandle srcRgnB,
RgnHandle dstRgn);
pascal void UnionRgn (RgnHandle srcRgnA, RgnHandle srcRgnB,
RgnHandle dstRgn);
pascal void DiffRgn (RgnHandle srcRgnA, RgnHandle srcRgnB,
RgnHandle dstRgn);
pascal void XorRgn (RgnHandle srcRgnA, RgnHandle srcRgnB,
RgnHandle dstRgn);
pascal Boolean PtInRgn (Point pt, RgnHandle rgn);
pascal Boolean RectInRgn (const Rect *r, RgnHandle rgn);
pascal Boolean EqualRgn (RgnHandle rgnA, RgnHandle rgnB);
pascal Boolean EmptyRgn (RgnHandle rgn);
Drawing Regions
pascal void FrameRgn (RgnHandle rgn);
pascal void PaintRgn (RgnHandle rgn);
pascal void FillRgn (RgnHandle rgn, ConstPatternParam pat);
pascal void EraseRgn (RgnHandle rgn);
pascal void InvertRgn (RgnHandle rgn);
Scaling and Mapping Points, Rectangles, Polygons, and Regions
pascal void ScalePt (Point *pt, const Rect *srcRect,
const Rect *dstRect);
pascal void MapPt (Point *pt, const Rect *srcRect,
const Rect *dstRect);
pascal void MapRect (Rect *r, const Rect *srcRect,
const Rect *dstRect);
pascal void MapRgn (RgnHandle rgn, const Rect *srcRect,
const Rect *dstRect);
pascal void MapPoly (PolyHandle poly, const Rect *srcRect,
const Rect *dstRect);
Calculating Black-and-White Fills
pascal void SeedFill (const void *srcPtr, void *dstPtr,
short srcRow, short dstRow, short height,
short words, short seedH, short seedV);
pascal void CalcMask (const void *srcPtr, void *dstPtr,
short srcRow, short dstRow, short height,
short words);
Copying Images
pascal void CopyBits (const BitMap *srcBits,
const BitMap *dstBits, const Rect *srcRect,
const Rect *dstRect, short mode,
RgnHandle maskRgn);
pascal void CopyMask (const BitMap *srcBits,
const BitMap *maskBits, const BitMap *dstBits,
const Rect *srcRect, const Rect *maskRect,
const Rect *dstRect);
pascal void CopyDeepMask (const BitMap *srcBits, const BitMap *maskBits,
const BitMap *dstBits, const Rect *srcRect,
const Rect *maskRect, const Rect *dstRect,
short mode, RgnHandle maskRgn);
Drawing With the Eight-Color System
pascal void ForeColor (long color);
pascal void BackColor (long color);
pascal void ColorBit (short whichBit);
Determining Whether QuickDraw Has Finished Drawing
pascal Boolean QDDone (GrafPtr port);
Getting Pattern Resources
pascal PatHandle GetPattern
(short patternID);
pascal void GetIndPattern (Pattern thePat, short patternListID,
short index);
Customizing QuickDraw Operations
pascal void SetStdProcs (QDProcs *procs);
pascal void StdText (short count, const void *textAddr,
Point numer, Point denom);
pascal void StdLine (Point newPt);
pascal void StdRect (GrafVerb verb, const Rect *r);
pascal void StdRRect (GrafVerb verb, const Rect *r,
short ovalWidth, short ovalHeight);
pascal void StdOval (GrafVerb verb, const Rect *r);
pascal void StdArc (GrafVerb verb, const Rect *r,
short startAngle, short arcAngle);
pascal void StdPoly (GrafVerb verb, PolyHandle poly);
pascal void StdRgn (GrafVerb verb, RgnHandle rgn);
pascal void StdBits (const BitMap *srcBits,
const Rect *srcRect, const Rect *dstRect,
short mode, RgnHandle maskRgn);
pascal void StdComment (short kind, short dataSize, Handle dataHandle);
pascal short StdTxtMeas (short byteCount, const void *textAddr,
Point *numer, Point *denom, FontInfo *info);
pascal void StdGetPic (void *dataPtr, short byteCount);
pascal void StdPutPic (const void *dataPtr, short byteCount);
Assembly-Language Summary
Data Structures
Polygon Data Structure
| 0 | polySize | word | total bytes in this structure |
| 2 | polyBBox | 8 bytes | bounding rectangle |
| 10 | polyPoints | variable | vertices, each consisting of a long (point) |
PenState Data Structure
| 0 | psLoc | long | pen location |
| 4 | psSize | long | pen size |
| 8 | psMode | word | pattern mode |
| 10 | psPat | 8 bytes | pattern |
QDProcs Data Structure
| 0 | textProc | long | pointer to text-drawing routine |
| 4 | lineProc | long | pointer to line-drawing routine |
| 8 | rectProc | long | pointer to rectangle-drawing routine |
| 12 | rRectProc | long | pointer to rounded rectangle-drawing routine |
| 16 | ovalProc | long | pointer to oval-drawing routine |
| 20 | arcProc | long | pointer to arc/wedge-drawing routine |
| 24 | polyProc | long | pointer to polygon-drawing routine |
| 28 | rgnProc | long | pointer to region-drawing routine |
| 32 | bitsProc | long | pointer to bit transfer routine |
| 36 | commentProc | long | pointer to picture comment-processing routine |
| 40 | txMeasProc | long | pointer to text-width measurement routine |
| 44 | getPicProc | long | pointer to picture retrieval routine |
| 48 | putPicProc | long | pointer to picture-saving routine |
Trap Macro Requiring Routine Selector
_QDExtensions
| Selector | Routine |
| $00040013 | QDDone |
Global Variables
| black | All-black pattern. |
| dkGray | 75% gray pattern. |
| gray | 50% gray pattern. |
| ltGray | 25% gray pattern. |
| white | All-white pattern. |