/*********************************************************/
/* This source code copyright (c) 1991-2001, Aaron Giles */
/* See the Read Me file for licensing information.       */
/* Contact email: mac@aarongiles.com                     */
/*********************************************************/

#ifndef __JV_DRAWING_H__
#define __JV_DRAWING_H__

extern OSErr DrawingInit(void);
extern JVDrawParamsHandle NewDrawParams(Rect *bounds, short quality, Boolean quantize,
			NestedProgressPtr progress, Handle privateData);
extern void SetUpDrawPort(JVDrawParamsHandle theParams, short whichPort, CGrafPtr thePort,
			Rect *srcRect, Rect *dstRect, Boolean dither);
extern OSErr PreflightDrawing(JVDrawParamsHandle theParams);
extern OSErr PostflightDrawing(JVDrawParamsHandle theParams);
extern OSErr FixBits(CGrafPtr thePort, Boolean on);
extern void CallProperBitsProc(BitMap *src, Rect *srcRect, Rect *dstRect, short mode, 
			RgnHandle mask);
extern void CallProperTextProc(short count, Ptr textAddr, Point numer, Point denom);
extern void CallProperLineProc(Point newPt);
extern void CallProperRectProc(GrafVerb verb, Rect *r);
extern void CallProperRRectProc(GrafVerb verb, Rect *r, short ovalWidth, short ovalHeight);
extern void CallProperOvalProc(GrafVerb verb, Rect *r);
extern void CallProperArcProc(GrafVerb verb, Rect *r, short startAngle, short arcAngle);
extern void CallProperPolyProc(GrafVerb verb, PolyHandle poly);
extern void CallProperRgnProc(GrafVerb verb, RgnHandle rgn);
extern void CallProperPixProc(PixMap *src, Rect *srcRect, MatrixRecord *matrix, short mode,
	RgnHandle mask, PixMap *matte, Rect *matteRect, short flags);

enum {
	kOnscreenPort = 0,
	kOffscreenPort1,
	kOffscreenPort2
};

#endif