topical media & game development
lib-of-vs-libs-QTDevWin-CIncludes-Quickdraw.h / h
/*
File: Quickdraw.h
Contains: Interface to Quickdraw Graphics
Version: Technology: Mac OS 9
Release: QuickTime 6.0.2
Copyright: (c) 1985-2001 by Apple Computer, Inc., all rights reserved
Bugs?: For bug reports, consult the following page on
the World Wide Web:
http://developer.apple.com/bugreporter/
*/
ifndef __QUICKDRAW__
define __QUICKDRAW__
ifndef __COMPONENTS__
include <Components.h>
endif
ifndef __MACTYPES__
include <MacTypes.h>
endif
ifndef __MIXEDMODE__
include <MixedMode.h>
endif
ifndef __QUICKDRAWTEXT__
include <QuickdrawText.h>
endif
if PRAGMA_ONCE
#pragma once
endif
ifdef __cplusplus
extern "C" {
endif
if PRAGMA_IMPORT
#pragma import on
endif
if PRAGMA_STRUCT_ALIGN
#pragma options align=mac68k
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(push, 2)
#elif PRAGMA_STRUCT_PACK
#pragma pack(2)
endif
enum {
invalColReq = -1 /*invalid color table request*/
};
enum {
/* transfer modes */
srcCopy = 0, /*the 16 transfer modes*/
srcOr = 1,
srcXor = 2,
srcBic = 3,
notSrcCopy = 4,
notSrcOr = 5,
notSrcXor = 6,
notSrcBic = 7,
patCopy = 8,
patOr = 9,
patXor = 10,
patBic = 11,
notPatCopy = 12,
notPatOr = 13,
notPatXor = 14,
notPatBic = 15, /* Special Text Transfer Mode */
grayishTextOr = 49,
hilitetransfermode = 50,
hilite = 50, /* Arithmetic transfer modes */
blend = 32,
addPin = 33,
addOver = 34,
subPin = 35,
addMax = 37,
adMax = 37,
subOver = 38,
adMin = 39,
ditherCopy = 64, /* Transparent mode constant */
transparent = 36
};
enum {
italicBit = 1,
ulineBit = 2,
outlineBit = 3,
shadowBit = 4,
condenseBit = 5,
extendBit = 6
};
enum {
/* QuickDraw color separation constants */
normalBit = 0, /*normal screen mapping*/
inverseBit = 1, /*inverse screen mapping*/
redBit = 4, /*RGB additive mapping*/
greenBit = 3,
blueBit = 2,
cyanBit = 8, /*CMYBk subtractive mapping*/
magentaBit = 7,
yellowBit = 6,
blackBit = 5
};
enum {
blackColor = 33, /*colors expressed in these mappings*/
whiteColor = 30,
redColor = 205,
greenColor = 341,
blueColor = 409,
cyanColor = 273,
magentaColor = 137,
yellowColor = 69
};
enum {
picLParen = 0, /*standard picture comments*/
picRParen = 1,
clutType = 0, /*0 if lookup table*/
fixedType = 1, /*1 if fixed table*/
directType = 2, /*2 if direct values*/
gdDevType = 0 /*0 = monochrome 1 = color*/
};
enum {
interlacedDevice = 2, /* 1 if single pixel lines look bad */
roundedDevice = 5, /* 1 if device has been "rounded" into the GrayRgn */
hasAuxMenuBar = 6, /* 1 if device has an aux menu bar on it */
burstDevice = 7,
ext32Device = 8,
ramInit = 10, /*1 if initialized from 'scrn' resource*/
mainScreen = 11, /* 1 if main screen */
allInit = 12, /* 1 if all devices initialized */
screenDevice = 13, /*1 if screen device [not used]*/
noDriver = 14, /* 1 if no driver for this GDevice */
screenActive = 15, /*1 if in use*/
hiliteBit = 7, /*flag bit in HiliteMode (lowMem flag)*/
pHiliteBit = 0, /*flag bit in HiliteMode used with BitClr procedure*/
defQDColors = 127, /*resource ID of clut for default QDColors*/
/* pixel type */
RGBDirect = 16, /* 16 & 32 bits/pixel pixelType value */
/* pmVersion values */
baseAddr32 = 4 /*pixmap base address is 32-bit address*/
};
enum {
sysPatListID = 0,
iBeamCursor = 1,
crossCursor = 2,
plusCursor = 3,
watchCursor = 4
};
enum {
kQDGrafVerbFrame = 0,
kQDGrafVerbPaint = 1,
kQDGrafVerbErase = 2,
kQDGrafVerbInvert = 3,
kQDGrafVerbFill = 4
};
if OLDROUTINENAMES
enum {
frame = kQDGrafVerbFrame,
paint = kQDGrafVerbPaint,
erase = kQDGrafVerbErase,
invert = kQDGrafVerbInvert,
fill = kQDGrafVerbFill
};
endif /* OLDROUTINENAMES */
typedef SInt8 GrafVerb;
enum {
chunky = 0,
chunkyPlanar = 1,
planar = 2
};
typedef SInt8 PixelType;
typedef short Bits16[16];
************* IMPORTANT NOTE REGARDING Pattern **************************************
Patterns were originally defined as:
C: typedef unsigned char Pattern[8];
Pascal: Pattern = PACKED ARRAY [0..7] OF 0..255;
The old array definition of Pattern would cause 68000 based CPU's to crash in certain circum-
stances. The new struct definition is safe, but may require source code changes to compile.
*******************************************************************************************
struct Pattern {
UInt8 pat[8];
};
typedef struct Pattern Pattern;
/*
ConstPatternParam is no longer needed. It was first created when Pattern was an array.
Now that Pattern is a struct, it is more straight forward to just add the "const" qualifier
on the parameter type (e.g. "const Pattern * pat" instead of "ConstPatternParam pat").
*/
typedef const Pattern * ConstPatternParam;
typedef Pattern * PatPtr;
typedef PatPtr * PatHandle;
typedef SignedByte QDByte;
typedef QDByte * QDPtr;
typedef QDPtr * QDHandle;
typedef short QDErr;
enum {
singleDevicesBit = 0,
dontMatchSeedsBit = 1,
allDevicesBit = 2
};
enum {
singleDevices = 1 << singleDevicesBit,
dontMatchSeeds = 1 << dontMatchSeedsBit,
allDevices = 1 << allDevicesBit
};
typedef unsigned long DeviceLoopFlags;
/*
PrinterStatusOpcode. For communication with downloading and printing services.
*/
typedef SInt32 PrinterStatusOpcode;
enum {
kPrinterFontStatus = 0,
kPrinterScalingStatus = 1
};
struct PrinterFontStatus {
SInt32 oResult;
SInt16 iFondID;
Style iStyle;
};
typedef struct PrinterFontStatus PrinterFontStatus;
struct PrinterScalingStatus {
Point oScalingFactors;
};
typedef struct PrinterScalingStatus PrinterScalingStatus;
struct BitMap {
Ptr baseAddr;
short rowBytes;
Rect bounds;
};
typedef struct BitMap BitMap;
typedef BitMap * BitMapPtr;
typedef BitMapPtr * BitMapHandle;
struct Cursor {
Bits16 data;
Bits16 mask;
Point hotSpot;
};
typedef struct Cursor Cursor;
typedef Cursor * CursPtr;
typedef CursPtr * CursHandle;
struct PenState {
Point pnLoc;
Point pnSize;
short pnMode;
Pattern pnPat;
};
typedef struct PenState PenState;
if !OPAQUE_TOOLBOX_STRUCTS
struct MacRegion {
unsigned short rgnSize; /*size in bytes*/
Rect rgnBBox; /*enclosing rectangle*/
};
typedef struct MacRegion MacRegion;
/*
The type name "Region" has a name space collision on Win32.
Use MacRegion to be cross-platfrom safe.
*/
if TARGET_OS_MAC
typedef MacRegion Region;
endif /* TARGET_OS_MAC */
typedef MacRegion * RgnPtr;
typedef RgnPtr * RgnHandle;
else
typedef struct OpaqueRgnHandle* RgnHandle;
endif /* !OPAQUE_TOOLBOX_STRUCTS */
struct Picture {
short picSize;
Rect picFrame;
};
typedef struct Picture Picture;
typedef Picture * PicPtr;
typedef PicPtr * PicHandle;
struct MacPolygon {
short polySize;
Rect polyBBox;
Point polyPoints[1];
};
typedef struct MacPolygon MacPolygon;
/*
The type name "Polygon" has a name space collision on Win32.
Use MacPolygon to be cross-platfrom safe.
*/
if TARGET_OS_MAC
typedef MacPolygon Polygon;
endif /* TARGET_OS_MAC */
typedef MacPolygon * PolyPtr;
typedef PolyPtr * PolyHandle;
typedef CALLBACK_API( void , QDTextProcPtr )(short byteCount, Ptr textBuf, Point numer, Point denom);
typedef CALLBACK_API( void , QDLineProcPtr )(Point newPt);
typedef CALLBACK_API( void , QDRectProcPtr )(GrafVerb verb, Rect *r);
typedef CALLBACK_API( void , QDRRectProcPtr )(GrafVerb verb, Rect *r, short ovalWidth, short ovalHeight);
typedef CALLBACK_API( void , QDOvalProcPtr )(GrafVerb verb, Rect *r);
typedef CALLBACK_API( void , QDArcProcPtr )(GrafVerb verb, Rect *r, short startAngle, short arcAngle);
typedef CALLBACK_API( void , QDPolyProcPtr )(GrafVerb verb, PolyHandle poly);
typedef CALLBACK_API( void , QDRgnProcPtr )(GrafVerb verb, RgnHandle rgn);
typedef CALLBACK_API( void , QDBitsProcPtr )(BitMap *srcBits, Rect *srcRect, Rect *dstRect, short mode, RgnHandle maskRgn);
typedef CALLBACK_API( void , QDCommentProcPtr )(short kind, short dataSize, Handle dataHandle);
typedef CALLBACK_API( short , QDTxMeasProcPtr )(short byteCount, Ptr textAddr, Point *numer, Point *denom, FontInfo *info);
typedef CALLBACK_API( void , QDGetPicProcPtr )(Ptr dataPtr, short byteCount);
typedef CALLBACK_API( void , QDPutPicProcPtr )(Ptr dataPtr, short byteCount);
typedef CALLBACK_API( void , QDOpcodeProcPtr )(Rect *fromRect, Rect *toRect, short opcode, short version);
typedef CALLBACK_API_C( OSStatus , QDStdGlyphsProcPtr )(void *dataStream, ByteCount size);
typedef CALLBACK_API( void , QDJShieldCursorProcPtr )(short left, short top, short right, short bottom);
typedef STACK_UPP_TYPE(QDTextProcPtr) QDTextUPP;
typedef STACK_UPP_TYPE(QDLineProcPtr) QDLineUPP;
typedef STACK_UPP_TYPE(QDRectProcPtr) QDRectUPP;
typedef STACK_UPP_TYPE(QDRRectProcPtr) QDRRectUPP;
typedef STACK_UPP_TYPE(QDOvalProcPtr) QDOvalUPP;
typedef STACK_UPP_TYPE(QDArcProcPtr) QDArcUPP;
typedef STACK_UPP_TYPE(QDPolyProcPtr) QDPolyUPP;
typedef STACK_UPP_TYPE(QDRgnProcPtr) QDRgnUPP;
typedef STACK_UPP_TYPE(QDBitsProcPtr) QDBitsUPP;
typedef STACK_UPP_TYPE(QDCommentProcPtr) QDCommentUPP;
typedef STACK_UPP_TYPE(QDTxMeasProcPtr) QDTxMeasUPP;
typedef STACK_UPP_TYPE(QDGetPicProcPtr) QDGetPicUPP;
typedef STACK_UPP_TYPE(QDPutPicProcPtr) QDPutPicUPP;
typedef STACK_UPP_TYPE(QDOpcodeProcPtr) QDOpcodeUPP;
typedef STACK_UPP_TYPE(QDStdGlyphsProcPtr) QDStdGlyphsUPP;
typedef STACK_UPP_TYPE(QDJShieldCursorProcPtr) QDJShieldCursorUPP;
struct QDProcs {
QDTextUPP textProc;
QDLineUPP lineProc;
QDRectUPP rectProc;
QDRRectUPP rRectProc;
QDOvalUPP ovalProc;
QDArcUPP arcProc;
QDPolyUPP polyProc;
QDRgnUPP rgnProc;
QDBitsUPP bitsProc;
QDCommentUPP commentProc;
QDTxMeasUPP txMeasProc;
QDGetPicUPP getPicProc;
QDPutPicUPP putPicProc;
};
typedef struct QDProcs QDProcs;
typedef QDProcs * QDProcsPtr;
if OPAQUE_UPP_TYPES
EXTERN_API(QDTextUPP)
NewQDTextUPP (QDTextProcPtr userRoutine);
EXTERN_API(QDLineUPP)
NewQDLineUPP (QDLineProcPtr userRoutine);
EXTERN_API(QDRectUPP)
NewQDRectUPP (QDRectProcPtr userRoutine);
EXTERN_API(QDRRectUPP)
NewQDRRectUPP (QDRRectProcPtr userRoutine);
EXTERN_API(QDOvalUPP)
NewQDOvalUPP (QDOvalProcPtr userRoutine);
EXTERN_API(QDArcUPP)
NewQDArcUPP (QDArcProcPtr userRoutine);
EXTERN_API(QDPolyUPP)
NewQDPolyUPP (QDPolyProcPtr userRoutine);
EXTERN_API(QDRgnUPP)
NewQDRgnUPP (QDRgnProcPtr userRoutine);
EXTERN_API(QDBitsUPP)
NewQDBitsUPP (QDBitsProcPtr userRoutine);
EXTERN_API(QDCommentUPP)
NewQDCommentUPP (QDCommentProcPtr userRoutine);
EXTERN_API(QDTxMeasUPP)
NewQDTxMeasUPP (QDTxMeasProcPtr userRoutine);
EXTERN_API(QDGetPicUPP)
NewQDGetPicUPP (QDGetPicProcPtr userRoutine);
EXTERN_API(QDPutPicUPP)
NewQDPutPicUPP (QDPutPicProcPtr userRoutine);
EXTERN_API(QDOpcodeUPP)
NewQDOpcodeUPP (QDOpcodeProcPtr userRoutine);
EXTERN_API(QDStdGlyphsUPP)
NewQDStdGlyphsUPP (QDStdGlyphsProcPtr userRoutine);
EXTERN_API(QDJShieldCursorUPP)
NewQDJShieldCursorUPP (QDJShieldCursorProcPtr userRoutine);
EXTERN_API(void)
DisposeQDTextUPP (QDTextUPP userUPP);
EXTERN_API(void)
DisposeQDLineUPP (QDLineUPP userUPP);
EXTERN_API(void)
DisposeQDRectUPP (QDRectUPP userUPP);
EXTERN_API(void)
DisposeQDRRectUPP (QDRRectUPP userUPP);
EXTERN_API(void)
DisposeQDOvalUPP (QDOvalUPP userUPP);
EXTERN_API(void)
DisposeQDArcUPP (QDArcUPP userUPP);
EXTERN_API(void)
DisposeQDPolyUPP (QDPolyUPP userUPP);
EXTERN_API(void)
DisposeQDRgnUPP (QDRgnUPP userUPP);
EXTERN_API(void)
DisposeQDBitsUPP (QDBitsUPP userUPP);
EXTERN_API(void)
DisposeQDCommentUPP (QDCommentUPP userUPP);
EXTERN_API(void)
DisposeQDTxMeasUPP (QDTxMeasUPP userUPP);
EXTERN_API(void)
DisposeQDGetPicUPP (QDGetPicUPP userUPP);
EXTERN_API(void)
DisposeQDPutPicUPP (QDPutPicUPP userUPP);
EXTERN_API(void)
DisposeQDOpcodeUPP (QDOpcodeUPP userUPP);
EXTERN_API(void)
DisposeQDStdGlyphsUPP (QDStdGlyphsUPP userUPP);
EXTERN_API(void)
DisposeQDJShieldCursorUPP (QDJShieldCursorUPP userUPP);
EXTERN_API(void)
InvokeQDTextUPP (short byteCount,
Ptr textBuf,
Point numer,
Point denom,
QDTextUPP userUPP);
EXTERN_API(void)
InvokeQDLineUPP (Point newPt,
QDLineUPP userUPP);
EXTERN_API(void)
InvokeQDRectUPP (GrafVerb verb,
Rect * r,
QDRectUPP userUPP);
EXTERN_API(void)
InvokeQDRRectUPP (GrafVerb verb,
Rect * r,
short ovalWidth,
short ovalHeight,
QDRRectUPP userUPP);
EXTERN_API(void)
InvokeQDOvalUPP (GrafVerb verb,
Rect * r,
QDOvalUPP userUPP);
EXTERN_API(void)
InvokeQDArcUPP (GrafVerb verb,
Rect * r,
short startAngle,
short arcAngle,
QDArcUPP userUPP);
EXTERN_API(void)
InvokeQDPolyUPP (GrafVerb verb,
PolyHandle poly,
QDPolyUPP userUPP);
EXTERN_API(void)
InvokeQDRgnUPP (GrafVerb verb,
RgnHandle rgn,
QDRgnUPP userUPP);
EXTERN_API(void)
InvokeQDBitsUPP (BitMap * srcBits,
Rect * srcRect,
Rect * dstRect,
short mode,
RgnHandle maskRgn,
QDBitsUPP userUPP);
EXTERN_API(void)
InvokeQDCommentUPP (short kind,
short dataSize,
Handle dataHandle,
QDCommentUPP userUPP);
EXTERN_API(short)
InvokeQDTxMeasUPP (short byteCount,
Ptr textAddr,
Point * numer,
Point * denom,
FontInfo * info,
QDTxMeasUPP userUPP);
EXTERN_API(void)
InvokeQDGetPicUPP (Ptr dataPtr,
short byteCount,
QDGetPicUPP userUPP);
EXTERN_API(void)
InvokeQDPutPicUPP (Ptr dataPtr,
short byteCount,
QDPutPicUPP userUPP);
EXTERN_API(void)
InvokeQDOpcodeUPP (Rect * fromRect,
Rect * toRect,
short opcode,
short version,
QDOpcodeUPP userUPP);
EXTERN_API(OSStatus)
InvokeQDStdGlyphsUPP (void * dataStream,
ByteCount size,
QDStdGlyphsUPP userUPP);
EXTERN_API(void)
InvokeQDJShieldCursorUPP (short left,
short top,
short right,
short bottom,
QDJShieldCursorUPP userUPP);
else
enum { uppQDTextProcInfo = 0x00003F80 }; /* pascal no_return_value Func(2_bytes, 4_bytes, 4_bytes, 4_bytes) */
enum { uppQDLineProcInfo = 0x000000C0 }; /* pascal no_return_value Func(4_bytes) */
enum { uppQDRectProcInfo = 0x00000340 }; /* pascal no_return_value Func(1_byte, 4_bytes) */
enum { uppQDRRectProcInfo = 0x00002B40 }; /* pascal no_return_value Func(1_byte, 4_bytes, 2_bytes, 2_bytes) */
enum { uppQDOvalProcInfo = 0x00000340 }; /* pascal no_return_value Func(1_byte, 4_bytes) */
enum { uppQDArcProcInfo = 0x00002B40 }; /* pascal no_return_value Func(1_byte, 4_bytes, 2_bytes, 2_bytes) */
enum { uppQDPolyProcInfo = 0x00000340 }; /* pascal no_return_value Func(1_byte, 4_bytes) */
enum { uppQDRgnProcInfo = 0x00000340 }; /* pascal no_return_value Func(1_byte, 4_bytes) */
enum { uppQDBitsProcInfo = 0x0000EFC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes) */
enum { uppQDCommentProcInfo = 0x00000E80 }; /* pascal no_return_value Func(2_bytes, 2_bytes, 4_bytes) */
enum { uppQDTxMeasProcInfo = 0x0000FFA0 }; /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
enum { uppQDGetPicProcInfo = 0x000002C0 }; /* pascal no_return_value Func(4_bytes, 2_bytes) */
enum { uppQDPutPicProcInfo = 0x000002C0 }; /* pascal no_return_value Func(4_bytes, 2_bytes) */
enum { uppQDOpcodeProcInfo = 0x00002BC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes, 2_bytes) */
enum { uppQDStdGlyphsProcInfo = 0x000003F1 }; /* 4_bytes Func(4_bytes, 4_bytes) */
enum { uppQDJShieldCursorProcInfo = 0x00002A80 }; /* pascal no_return_value Func(2_bytes, 2_bytes, 2_bytes, 2_bytes) */
#define NewQDTextUPP(userRoutine) (QDTextUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDTextProcInfo, GetCurrentArchitecture())
#define NewQDLineUPP(userRoutine) (QDLineUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDLineProcInfo, GetCurrentArchitecture())
#define NewQDRectUPP(userRoutine) (QDRectUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDRectProcInfo, GetCurrentArchitecture())
#define NewQDRRectUPP(userRoutine) (QDRRectUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDRRectProcInfo, GetCurrentArchitecture())
#define NewQDOvalUPP(userRoutine) (QDOvalUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDOvalProcInfo, GetCurrentArchitecture())
#define NewQDArcUPP(userRoutine) (QDArcUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDArcProcInfo, GetCurrentArchitecture())
#define NewQDPolyUPP(userRoutine) (QDPolyUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDPolyProcInfo, GetCurrentArchitecture())
#define NewQDRgnUPP(userRoutine) (QDRgnUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDRgnProcInfo, GetCurrentArchitecture())
#define NewQDBitsUPP(userRoutine) (QDBitsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDBitsProcInfo, GetCurrentArchitecture())
#define NewQDCommentUPP(userRoutine) (QDCommentUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDCommentProcInfo, GetCurrentArchitecture())
#define NewQDTxMeasUPP(userRoutine) (QDTxMeasUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDTxMeasProcInfo, GetCurrentArchitecture())
#define NewQDGetPicUPP(userRoutine) (QDGetPicUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDGetPicProcInfo, GetCurrentArchitecture())
#define NewQDPutPicUPP(userRoutine) (QDPutPicUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDPutPicProcInfo, GetCurrentArchitecture())
#define NewQDOpcodeUPP(userRoutine) (QDOpcodeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDOpcodeProcInfo, GetCurrentArchitecture())
#define NewQDStdGlyphsUPP(userRoutine) (QDStdGlyphsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDStdGlyphsProcInfo, GetCurrentArchitecture())
#define NewQDJShieldCursorUPP(userRoutine) (QDJShieldCursorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDJShieldCursorProcInfo, GetCurrentArchitecture())
#define DisposeQDTextUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDLineUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDRectUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDRRectUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDOvalUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDArcUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDPolyUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDRgnUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDBitsUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDCommentUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDTxMeasUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDGetPicUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDPutPicUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDOpcodeUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDStdGlyphsUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeQDJShieldCursorUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define InvokeQDTextUPP(byteCount, textBuf, numer, denom, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppQDTextProcInfo, (byteCount), (textBuf), (numer), (denom))
#define InvokeQDLineUPP(newPt, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppQDLineProcInfo, (newPt))
#define InvokeQDRectUPP(verb, r, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppQDRectProcInfo, (verb), (r))
#define InvokeQDRRectUPP(verb, r, ovalWidth, ovalHeight, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppQDRRectProcInfo, (verb), (r), (ovalWidth), (ovalHeight))
#define InvokeQDOvalUPP(verb, r, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppQDOvalProcInfo, (verb), (r))
#define InvokeQDArcUPP(verb, r, startAngle, arcAngle, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppQDArcProcInfo, (verb), (r), (startAngle), (arcAngle))
#define InvokeQDPolyUPP(verb, poly, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppQDPolyProcInfo, (verb), (poly))
#define InvokeQDRgnUPP(verb, rgn, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppQDRgnProcInfo, (verb), (rgn))
#define InvokeQDBitsUPP(srcBits, srcRect, dstRect, mode, maskRgn, userUPP) CALL_FIVE_PARAMETER_UPP((userUPP), uppQDBitsProcInfo, (srcBits), (srcRect), (dstRect), (mode), (maskRgn))
#define InvokeQDCommentUPP(kind, dataSize, dataHandle, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppQDCommentProcInfo, (kind), (dataSize), (dataHandle))
#define InvokeQDTxMeasUPP(byteCount, textAddr, numer, denom, info, userUPP) (short)CALL_FIVE_PARAMETER_UPP((userUPP), uppQDTxMeasProcInfo, (byteCount), (textAddr), (numer), (denom), (info))
#define InvokeQDGetPicUPP(dataPtr, byteCount, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppQDGetPicProcInfo, (dataPtr), (byteCount))
#define InvokeQDPutPicUPP(dataPtr, byteCount, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppQDPutPicProcInfo, (dataPtr), (byteCount))
#define InvokeQDOpcodeUPP(fromRect, toRect, opcode, version, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppQDOpcodeProcInfo, (fromRect), (toRect), (opcode), (version))
#define InvokeQDStdGlyphsUPP(dataStream, size, userUPP) (OSStatus)CALL_TWO_PARAMETER_UPP((userUPP), uppQDStdGlyphsProcInfo, (dataStream), (size))
#define InvokeQDJShieldCursorUPP(left, top, right, bottom, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppQDJShieldCursorProcInfo, (left), (top), (right), (bottom))
endif
/* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
define NewQDTextProc(userRoutine) NewQDTextUPP(userRoutine)
define NewQDLineProc(userRoutine) NewQDLineUPP(userRoutine)
define NewQDRectProc(userRoutine) NewQDRectUPP(userRoutine)
define NewQDRRectProc(userRoutine) NewQDRRectUPP(userRoutine)
define NewQDOvalProc(userRoutine) NewQDOvalUPP(userRoutine)
define NewQDArcProc(userRoutine) NewQDArcUPP(userRoutine)
define NewQDPolyProc(userRoutine) NewQDPolyUPP(userRoutine)
define NewQDRgnProc(userRoutine) NewQDRgnUPP(userRoutine)
define NewQDBitsProc(userRoutine) NewQDBitsUPP(userRoutine)
define NewQDCommentProc(userRoutine) NewQDCommentUPP(userRoutine)
define NewQDTxMeasProc(userRoutine) NewQDTxMeasUPP(userRoutine)
define NewQDGetPicProc(userRoutine) NewQDGetPicUPP(userRoutine)
define NewQDPutPicProc(userRoutine) NewQDPutPicUPP(userRoutine)
define NewQDOpcodeProc(userRoutine) NewQDOpcodeUPP(userRoutine)
define NewQDStdGlyphsProc(userRoutine) NewQDStdGlyphsUPP(userRoutine)
define NewQDJShieldCursorProc(userRoutine) NewQDJShieldCursorUPP(userRoutine)
define CallQDTextProc(userRoutine, byteCount, textBuf, numer, denom) InvokeQDTextUPP(byteCount, textBuf, numer, denom, userRoutine)
define CallQDLineProc(userRoutine, newPt) InvokeQDLineUPP(newPt, userRoutine)
define CallQDRectProc(userRoutine, verb, r) InvokeQDRectUPP(verb, r, userRoutine)
define CallQDRRectProc(userRoutine, verb, r, ovalWidth, ovalHeight) InvokeQDRRectUPP(verb, r, ovalWidth, ovalHeight, userRoutine)
define CallQDOvalProc(userRoutine, verb, r) InvokeQDOvalUPP(verb, r, userRoutine)
define CallQDArcProc(userRoutine, verb, r, startAngle, arcAngle) InvokeQDArcUPP(verb, r, startAngle, arcAngle, userRoutine)
define CallQDPolyProc(userRoutine, verb, poly) InvokeQDPolyUPP(verb, poly, userRoutine)
define CallQDRgnProc(userRoutine, verb, rgn) InvokeQDRgnUPP(verb, rgn, userRoutine)
define CallQDBitsProc(userRoutine, srcBits, srcRect, dstRect, mode, maskRgn) InvokeQDBitsUPP(srcBits, srcRect, dstRect, mode, maskRgn, userRoutine)
define CallQDCommentProc(userRoutine, kind, dataSize, dataHandle) InvokeQDCommentUPP(kind, dataSize, dataHandle, userRoutine)
define CallQDTxMeasProc(userRoutine, byteCount, textAddr, numer, denom, info) InvokeQDTxMeasUPP(byteCount, textAddr, numer, denom, info, userRoutine)
define CallQDGetPicProc(userRoutine, dataPtr, byteCount) InvokeQDGetPicUPP(dataPtr, byteCount, userRoutine)
define CallQDPutPicProc(userRoutine, dataPtr, byteCount) InvokeQDPutPicUPP(dataPtr, byteCount, userRoutine)
define CallQDOpcodeProc(userRoutine, fromRect, toRect, opcode, version) InvokeQDOpcodeUPP(fromRect, toRect, opcode, version, userRoutine)
define CallQDStdGlyphsProc(userRoutine, dataStream, size) InvokeQDStdGlyphsUPP(dataStream, size, userRoutine)
define CallQDJShieldCursorProc(userRoutine, left, top, right, bottom) InvokeQDJShieldCursorUPP(left, top, right, bottom, userRoutine)
if !OPAQUE_TOOLBOX_STRUCTS
struct GrafPort {
short device;
BitMap portBits;
Rect portRect;
RgnHandle visRgn;
RgnHandle clipRgn;
Pattern bkPat;
Pattern fillPat;
Point pnLoc;
Point pnSize;
short pnMode;
Pattern pnPat;
short pnVis;
short txFont;
StyleField txFace; /*StyleField occupies 16-bits, but only first 8-bits are used*/
UInt8 txFlags; /* QuickTime uses second 8 bits of StyleField for txFlags */
short txMode;
short txSize;
Fixed spExtra;
long fgColor;
long bkColor;
short colrBit;
short patStretch;
Handle picSave;
Handle rgnSave;
Handle polySave;
QDProcsPtr grafProcs;
};
typedef struct GrafPort GrafPort;
typedef GrafPort * GrafPtr;
/*
* This set of definitions "belongs" in Windows.
* But, there is a circularity in the headers where Windows includes Controls and
* Controls includes Windows. To break the circle, the information
* needed by Controls is moved from Windows to Quickdraw.
*/
typedef GrafPtr WindowPtr;
typedef WindowPtr DialogPtr;
else
typedef struct OpaqueWindowPtr* WindowPtr;
typedef struct OpaqueDialogPtr* DialogPtr;
typedef struct OpaqueGrafPtr* GrafPtr;
endif /* !OPAQUE_TOOLBOX_STRUCTS */
typedef WindowPtr WindowRef;
/* DragConstraint constants to pass to DragGray,DragTheRgn, or ConstrainedDragRgn*/
typedef UInt16 DragConstraint;
enum {
kNoConstraint = 0,
kVerticalConstraint = 1,
kHorizontalConstraint = 2
};
typedef CALLBACK_API( void , DragGrayRgnProcPtr )(void );
/*
* Here ends the list of things that "belong" in Windows.
*/
struct RGBColor {
unsigned short red; /*magnitude of red component*/
unsigned short green; /*magnitude of green component*/
unsigned short blue; /*magnitude of blue component*/
};
typedef struct RGBColor RGBColor;
typedef RGBColor * RGBColorPtr;
typedef RGBColorPtr * RGBColorHdl;
typedef CALLBACK_API( Boolean , ColorSearchProcPtr )(RGBColor *rgb, long *position);
typedef CALLBACK_API( Boolean , ColorComplementProcPtr )(RGBColor *rgb);
typedef STACK_UPP_TYPE(DragGrayRgnProcPtr) DragGrayRgnUPP;
typedef STACK_UPP_TYPE(ColorSearchProcPtr) ColorSearchUPP;
typedef STACK_UPP_TYPE(ColorComplementProcPtr) ColorComplementUPP;
if OPAQUE_UPP_TYPES
EXTERN_API(DragGrayRgnUPP)
NewDragGrayRgnUPP (DragGrayRgnProcPtr userRoutine);
EXTERN_API(ColorSearchUPP)
NewColorSearchUPP (ColorSearchProcPtr userRoutine);
EXTERN_API(ColorComplementUPP)
NewColorComplementUPP (ColorComplementProcPtr userRoutine);
EXTERN_API(void)
DisposeDragGrayRgnUPP (DragGrayRgnUPP userUPP);
EXTERN_API(void)
DisposeColorSearchUPP (ColorSearchUPP userUPP);
EXTERN_API(void)
DisposeColorComplementUPP (ColorComplementUPP userUPP);
EXTERN_API(void)
InvokeDragGrayRgnUPP (DragGrayRgnUPP userUPP);
EXTERN_API(Boolean)
InvokeColorSearchUPP (RGBColor * rgb,
long * position,
ColorSearchUPP userUPP);
EXTERN_API(Boolean)
InvokeColorComplementUPP (RGBColor * rgb,
ColorComplementUPP userUPP);
else
enum { uppDragGrayRgnProcInfo = 0x00000000 }; /* pascal no_return_value Func() */
enum { uppColorSearchProcInfo = 0x000003D0 }; /* pascal 1_byte Func(4_bytes, 4_bytes) */
enum { uppColorComplementProcInfo = 0x000000D0 }; /* pascal 1_byte Func(4_bytes) */
#define NewDragGrayRgnUPP(userRoutine) (DragGrayRgnUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDragGrayRgnProcInfo, GetCurrentArchitecture())
#define NewColorSearchUPP(userRoutine) (ColorSearchUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppColorSearchProcInfo, GetCurrentArchitecture())
#define NewColorComplementUPP(userRoutine) (ColorComplementUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppColorComplementProcInfo, GetCurrentArchitecture())
#define DisposeDragGrayRgnUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeColorSearchUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeColorComplementUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define InvokeDragGrayRgnUPP(userUPP) CALL_ZERO_PARAMETER_UPP((userUPP), uppDragGrayRgnProcInfo)
#define InvokeColorSearchUPP(rgb, position, userUPP) (Boolean)CALL_TWO_PARAMETER_UPP((userUPP), uppColorSearchProcInfo, (rgb), (position))
#define InvokeColorComplementUPP(rgb, userUPP) (Boolean)CALL_ONE_PARAMETER_UPP((userUPP), uppColorComplementProcInfo, (rgb))
endif
/* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
define NewDragGrayRgnProc(userRoutine) NewDragGrayRgnUPP(userRoutine)
define NewColorSearchProc(userRoutine) NewColorSearchUPP(userRoutine)
define NewColorComplementProc(userRoutine) NewColorComplementUPP(userRoutine)
define CallDragGrayRgnProc(userRoutine) InvokeDragGrayRgnUPP(userRoutine)
define CallColorSearchProc(userRoutine, rgb, position) InvokeColorSearchUPP(rgb, position, userRoutine)
define CallColorComplementProc(userRoutine, rgb) InvokeColorComplementUPP(rgb, userRoutine)
struct ColorSpec {
short value; /*index or other value*/
RGBColor rgb; /*true color*/
};
typedef struct ColorSpec ColorSpec;
typedef ColorSpec * ColorSpecPtr;
typedef ColorSpec CSpecArray[1];
struct ColorTable {
long ctSeed; /*unique identifier for table*/
short ctFlags; /*high bit: 0 = PixMap; 1 = device*/
short ctSize; /*number of entries in CTTable*/
CSpecArray ctTable; /*array [0..0] of ColorSpec*/
};
typedef struct ColorTable ColorTable;
typedef ColorTable * CTabPtr;
typedef CTabPtr * CTabHandle;
struct xColorSpec {
short value; /*index or other value*/
RGBColor rgb; /*true color*/
short xalpha;
};
typedef struct xColorSpec xColorSpec;
typedef xColorSpec * xColorSpecPtr;
typedef xColorSpec xCSpecArray[1];
struct MatchRec {
unsigned short red;
unsigned short green;
unsigned short blue;
long matchData;
};
typedef struct MatchRec MatchRec;
/*
QuickTime 3.0 makes PixMap data structure available on non-Mac OS's.
In order to implement PixMap in these alternate environments, the PixMap
had to be extended. The pmReserved field was changed to pmExt which is
a Handle to extra info. The planeBytes field was changed to pixelFormat.
In OS X, Quickdraw also uses the new PixMap data structure.
*/
ifndef OLDPIXMAPSTRUCT
if TARGET_OS_MAC && TARGET_API_MAC_OS8
define OLDPIXMAPSTRUCT 1
else
define OLDPIXMAPSTRUCT 0
endif /* TARGET_OS_MAC && TARGET_API_MAC_OS8 */
endif /* !defined(OLDPIXMAPSTRUCT) */
if OLDPIXMAPSTRUCT
#define GETPIXMAPPIXELFORMAT(pm) ( (pm)->pixelSize )
else
#define GETPIXMAPPIXELFORMAT(pm) ( ((pm)->pixelFormat != 0) ? (pm)->pixelFormat : (pm)->pixelSize )
endif
if TARGET_OS_MAC && !TARGET_RT_LITTLE_ENDIAN
#define NON_MAC_PIXEL_FORMATS 0
else
#define NON_MAC_PIXEL_FORMATS 1
endif
/* pixel formats*/
enum {
k1MonochromePixelFormat = 0x00000001, /* 1 bit indexed*/
k2IndexedPixelFormat = 0x00000002, /* 2 bit indexed*/
k4IndexedPixelFormat = 0x00000004, /* 4 bit indexed*/
k8IndexedPixelFormat = 0x00000008, /* 8 bit indexed*/
k16BE555PixelFormat = 0x00000010, /* 16 bit BE rgb 555 (Mac)*/
k24RGBPixelFormat = 0x00000018, /* 24 bit rgb */
k32ARGBPixelFormat = 0x00000020, /* 32 bit argb (Mac)*/
k1IndexedGrayPixelFormat = 0x00000021, /* 1 bit indexed gray*/
k2IndexedGrayPixelFormat = 0x00000022, /* 2 bit indexed gray*/
k4IndexedGrayPixelFormat = 0x00000024, /* 4 bit indexed gray*/
k8IndexedGrayPixelFormat = 0x00000028 /* 8 bit indexed gray*/
};
/* values for PixMap.pixelFormat*/
enum {
k16LE555PixelFormat = FOUR_CHAR_CODE('L555'), /* 16 bit LE rgb 555 (PC)*/
k16LE5551PixelFormat = FOUR_CHAR_CODE('5551'), /* 16 bit LE rgb 5551*/
k16BE565PixelFormat = FOUR_CHAR_CODE('B565'), /* 16 bit BE rgb 565*/
k16LE565PixelFormat = FOUR_CHAR_CODE('L565'), /* 16 bit LE rgb 565*/
k24BGRPixelFormat = FOUR_CHAR_CODE('24BG'), /* 24 bit bgr */
k32BGRAPixelFormat = FOUR_CHAR_CODE('BGRA'), /* 32 bit bgra (Matrox)*/
k32ABGRPixelFormat = FOUR_CHAR_CODE('ABGR'), /* 32 bit abgr */
k32RGBAPixelFormat = FOUR_CHAR_CODE('RGBA'), /* 32 bit rgba */
kYUVSPixelFormat = FOUR_CHAR_CODE('yuvs'), /* YUV 4:2:2 byte ordering 16-unsigned = 'YUY2'*/
kYUVUPixelFormat = FOUR_CHAR_CODE('yuvu'), /* YUV 4:2:2 byte ordering 16-signed*/
kYVU9PixelFormat = FOUR_CHAR_CODE('YVU9'), /* YVU9 Planar 9*/
kYUV411PixelFormat = FOUR_CHAR_CODE('Y411'), /* YUV 4:1:1 Interleaved 16*/
kYVYU422PixelFormat = FOUR_CHAR_CODE('YVYU'), /* YVYU 4:2:2 byte ordering 16*/
kUYVY422PixelFormat = FOUR_CHAR_CODE('UYVY'), /* UYVY 4:2:2 byte ordering 16*/
kYUV211PixelFormat = FOUR_CHAR_CODE('Y211'), /* YUV 2:1:1 Packed 8*/
k2vuyPixelFormat = FOUR_CHAR_CODE('2vuy') /* UYVY 4:2:2 byte ordering 16*/
};
if !OLDPIXMAPSTRUCT
struct PixMapExtension {
long extSize; /*size of struct, duh!*/
unsigned long pmBits; /*pixmap attributes bitfield*/
void * pmGD; /*this is a GDHandle*/
long pmSeed;
Fixed gammaLevel; /*pixmap gammalevel*/
Fixed requestedGammaLevel;
unsigned long reserved2;
long longRowBytes; /*used when rowBytes > 16382*/
unsigned long signature;
Handle baseAddrHandle;
};
typedef struct PixMapExtension PixMapExtension;
typedef PixMapExtension * PixMapExtPtr;
typedef PixMapExtPtr * PixMapExtHandle;
endif /* !OLDPIXMAPSTRUCT */
struct PixMap {
Ptr baseAddr; /*pointer to pixels*/
short rowBytes; /*offset to next line*/
Rect bounds; /*encloses bitmap*/
short pmVersion; /*pixMap version number*/
short packType; /*defines packing format*/
long packSize; /*length of pixel data*/
Fixed hRes; /*horiz. resolution (ppi)*/
Fixed vRes; /*vert. resolution (ppi)*/
short pixelType; /*defines pixel type*/
short pixelSize; /*# bits in pixel*/
short cmpCount; /*# components in pixel*/
short cmpSize; /*# bits per component*/
if OLDPIXMAPSTRUCT
long planeBytes; /*offset to next plane*/
CTabHandle pmTable; /*color map for this pixMap*/
long pmReserved;
else
OSType pixelFormat; /*fourCharCode representation*/
CTabHandle pmTable; /*color map for this pixMap*/
PixMapExtHandle pmExt; /*Handle to pixMap extension*/
endif
};
typedef struct PixMap PixMap;
typedef PixMap * PixMapPtr;
typedef PixMapPtr * PixMapHandle;
struct PixPat {
short patType; /*type of pattern*/
PixMapHandle patMap; /*the pattern's pixMap*/
Handle patData; /*pixmap's data*/
Handle patXData; /*expanded Pattern data*/
short patXValid; /*flags whether expanded Pattern valid*/
Handle patXMap; /*Handle to expanded Pattern data*/
Pattern pat1Data; /*old-Style pattern/RGB color*/
};
typedef struct PixPat PixPat;
typedef PixPat * PixPatPtr;
typedef PixPatPtr * PixPatHandle;
struct CCrsr {
short crsrType; /*type of cursor*/
PixMapHandle crsrMap; /*the cursor's pixmap*/
Handle crsrData; /*cursor's data*/
Handle crsrXData; /*expanded cursor data*/
short crsrXValid; /*depth of expanded data (0 if none)*/
Handle crsrXHandle; /*future use*/
Bits16 crsr1Data; /*one-bit cursor*/
Bits16 crsrMask; /*cursor's mask*/
Point crsrHotSpot; /*cursor's hotspot*/
long crsrXTable; /*private*/
long crsrID; /*private*/
};
typedef struct CCrsr CCrsr;
typedef CCrsr * CCrsrPtr;
typedef CCrsrPtr * CCrsrHandle;
struct GammaTbl {
short gVersion; /*gamma version number*/
short gType; /*gamma data type*/
short gFormulaSize; /*Formula data size*/
short gChanCnt; /*number of channels of data*/
short gDataCnt; /*number of values/channel*/
short gDataWidth; /*bits/corrected value (data packed to next larger byte size)*/
short gFormulaData[1]; /*data for formulas followed by gamma values*/
};
typedef struct GammaTbl GammaTbl;
typedef GammaTbl * GammaTblPtr;
typedef GammaTblPtr * GammaTblHandle;
struct ITab {
long iTabSeed; /*copy of CTSeed from source CTable*/
short iTabRes; /*bits/channel resolution of iTable*/
Byte iTTable[1]; /*byte colortable index values*/
};
typedef struct ITab ITab;
typedef ITab * ITabPtr;
typedef ITabPtr * ITabHandle;
struct SProcRec {
Handle nxtSrch; /*SProcHndl Handle to next SProcRec*/
ColorSearchUPP srchProc; /*search procedure proc ptr*/
};
typedef struct SProcRec SProcRec;
typedef SProcRec * SProcPtr;
typedef SProcPtr * SProcHndl;
struct CProcRec {
Handle nxtComp; /*CProcHndl Handle to next CProcRec*/
ColorComplementUPP compProc; /*complement procedure proc ptr*/
};
typedef struct CProcRec CProcRec;
typedef CProcRec * CProcPtr;
typedef CProcPtr * CProcHndl;
/*
QuickTime 3.0 makes GDevice data structure available on non-Mac OS's.
In order to implement GDevice in these alternate environments, the GDevice
had to be extended. The gdReserved field was changed to gdExt which is
a Handle to extra info.
*/
ifndef OLDGDEVICESTRUCT
if TARGET_OS_MAC && TARGET_API_MAC_OS8
define OLDGDEVICESTRUCT 1
else
define OLDGDEVICESTRUCT 0
endif /* TARGET_OS_MAC && TARGET_API_MAC_OS8 */
endif /* !defined(OLDGDEVICESTRUCT) */
typedef struct GDevice GDevice;
typedef GDevice * GDPtr;
typedef GDPtr * GDHandle;
struct GDevice {
short gdRefNum; /*driver's unit number*/
short gdID; /*client ID for search procs*/
short gdType; /*fixed/CLUT/direct*/
ITabHandle gdITable; /*Handle to inverse lookup table*/
short gdResPref; /*preferred resolution of GDITable*/
SProcHndl gdSearchProc; /*search proc list head*/
CProcHndl gdCompProc; /*complement proc list*/
short gdFlags; /*grafDevice flags word*/
PixMapHandle gdPMap; /*describing pixMap*/
long gdRefCon; /*reference value*/
GDHandle gdNextGD; /*GDHandle Handle of next gDevice*/
Rect gdRect; /* device's bounds in global coordinates*/
long gdMode; /*device's current mode*/
short gdCCBytes; /*depth of expanded cursor data*/
short gdCCDepth; /*depth of expanded cursor data*/
Handle gdCCXData; /*Handle to cursor's expanded data*/
Handle gdCCXMask; /*Handle to cursor's expanded mask*/
if OLDGDEVICESTRUCT
long gdReserved; /*future use. MUST BE 0*/
else
Handle gdExt; /*QuickTime 3.0 private info*/
endif
};
struct GrafVars {
RGBColor rgbOpColor; /*color for addPin subPin and average*/
RGBColor rgbHiliteColor; /*color for hiliting*/
Handle pmFgColor; /*palette Handle for foreground color*/
short pmFgIndex; /*index value for foreground*/
Handle pmBkColor; /*palette Handle for background color*/
short pmBkIndex; /*index value for background*/
short pmFlags; /*flags for Palette Manager*/
};
typedef struct GrafVars GrafVars;
typedef GrafVars * GVarPtr;
typedef GVarPtr * GVarHandle;
if OPAQUE_TOOLBOX_STRUCTS
typedef GrafPtr CGrafPtr;
else
typedef struct CGrafPort CGrafPort;
typedef CGrafPort * CGrafPtr;
endif /* OPAQUE_TOOLBOX_STRUCTS */
typedef CALLBACK_API_C( OSStatus , QDPrinterStatusProcPtr )(PrinterStatusOpcode opcode, CGrafPtr currentPort, void *printerStatus);
typedef STACK_UPP_TYPE(QDPrinterStatusProcPtr) QDPrinterStatusUPP;
struct CQDProcs {
QDTextUPP textProc;
QDLineUPP lineProc;
QDRectUPP rectProc;
QDRRectUPP rRectProc;
QDOvalUPP ovalProc;
QDArcUPP arcProc;
QDPolyUPP polyProc;
QDRgnUPP rgnProc;
QDBitsUPP bitsProc;
QDCommentUPP commentProc;
QDTxMeasUPP txMeasProc;
QDGetPicUPP getPicProc;
QDPutPicUPP putPicProc;
QDOpcodeUPP opcodeProc;
UniversalProcPtr newProc1; /* this is the StdPix bottleneck -- see ImageCompression.h */
QDStdGlyphsUPP glyphsProc; /* was newProc2; now used in Unicode text drawing */
QDPrinterStatusUPP printerStatusProc; /* was newProc3; now used to communicate status between Printing code and System imaging code */
UniversalProcPtr newProc4;
UniversalProcPtr newProc5;
UniversalProcPtr newProc6;
};
typedef struct CQDProcs CQDProcs;
typedef CQDProcs * CQDProcsPtr;
if !OPAQUE_TOOLBOX_STRUCTS
struct CGrafPort {
short device;
PixMapHandle portPixMap; /*port's pixel map*/
short portVersion; /*high 2 bits always set*/
Handle grafVars; /*Handle to more fields*/
short chExtra; /*character extra*/
short pnLocHFrac; /*pen fraction*/
Rect portRect;
RgnHandle visRgn;
RgnHandle clipRgn;
PixPatHandle bkPixPat; /*background pattern*/
RGBColor rgbFgColor; /*RGB components of fg*/
RGBColor rgbBkColor; /*RGB components of bk*/
Point pnLoc;
Point pnSize;
short pnMode;
PixPatHandle pnPixPat; /*pen's pattern*/
PixPatHandle fillPixPat; /*fill pattern*/
short pnVis;
short txFont;
StyleField txFace; /*StyleField occupies 16-bits, but only first 8-bits are used*/
UInt8 txFlags; /* QuickTime uses second 8 bits of StyleField for txFlags */
short txMode;
short txSize;
Fixed spExtra;
long fgColor;
long bkColor;
short colrBit;
short patStretch;
Handle picSave;
Handle rgnSave;
Handle polySave;
CQDProcsPtr grafProcs;
};
endif /* !OPAQUE_TOOLBOX_STRUCTS */
if OPAQUE_TOOLBOX_STRUCTS
typedef WindowPtr CWindowPtr;
else
typedef CGrafPtr CWindowPtr;
endif /* OPAQUE_TOOLBOX_STRUCTS */
struct ReqListRec {
short reqLSize; /*request list size*/
short reqLData[1]; /*request list data*/
};
typedef struct ReqListRec ReqListRec;
struct OpenCPicParams {
Rect srcRect;
Fixed hRes;
Fixed vRes;
short version;
short reserved1;
long reserved2;
};
typedef struct OpenCPicParams OpenCPicParams;
enum {
kCursorImageMajorVersion = 0x0001,
kCursorImageMinorVersion = 0x0000
};
struct CursorImageRec {
UInt16 majorVersion;
UInt16 minorVersion;
PixMapHandle cursorPixMap;
BitMapHandle cursorBitMask;
};
typedef struct CursorImageRec CursorImageRec;
typedef CursorImageRec * CursorImagePtr;
typedef CALLBACK_API( void , DeviceLoopDrawingProcPtr )(short depth, short deviceFlags, GDHandle targetDevice, long userData);
typedef STACK_UPP_TYPE(DeviceLoopDrawingProcPtr) DeviceLoopDrawingUPP;
if OPAQUE_UPP_TYPES
if CALL_NOT_IN_CARBON
EXTERN_API(QDPrinterStatusUPP)
NewQDPrinterStatusUPP (QDPrinterStatusProcPtr userRoutine);
endif /* CALL_NOT_IN_CARBON */
EXTERN_API(DeviceLoopDrawingUPP)
NewDeviceLoopDrawingUPP (DeviceLoopDrawingProcPtr userRoutine);
if CALL_NOT_IN_CARBON
EXTERN_API(void)
DisposeQDPrinterStatusUPP (QDPrinterStatusUPP userUPP);
endif /* CALL_NOT_IN_CARBON */
EXTERN_API(void)
DisposeDeviceLoopDrawingUPP (DeviceLoopDrawingUPP userUPP);
if CALL_NOT_IN_CARBON
EXTERN_API(OSStatus)
InvokeQDPrinterStatusUPP (PrinterStatusOpcode opcode,
CGrafPtr currentPort,
void * printerStatus,
QDPrinterStatusUPP userUPP);
endif /* CALL_NOT_IN_CARBON */
EXTERN_API(void)
InvokeDeviceLoopDrawingUPP (short depth,
short deviceFlags,
GDHandle targetDevice,
long userData,
DeviceLoopDrawingUPP userUPP);
else
enum { uppQDPrinterStatusProcInfo = 0x00000FF1 }; /* 4_bytes Func(4_bytes, 4_bytes, 4_bytes) */
enum { uppDeviceLoopDrawingProcInfo = 0x00003E80 }; /* pascal no_return_value Func(2_bytes, 2_bytes, 4_bytes, 4_bytes) */
#define NewQDPrinterStatusUPP(userRoutine) (QDPrinterStatusUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQDPrinterStatusProcInfo, GetCurrentArchitecture())
#define NewDeviceLoopDrawingUPP(userRoutine) (DeviceLoopDrawingUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDeviceLoopDrawingProcInfo, GetCurrentArchitecture())
#define DisposeQDPrinterStatusUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define DisposeDeviceLoopDrawingUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define InvokeQDPrinterStatusUPP(opcode, currentPort, printerStatus, userUPP) (OSStatus)CALL_THREE_PARAMETER_UPP((userUPP), uppQDPrinterStatusProcInfo, (opcode), (currentPort), (printerStatus))
#define InvokeDeviceLoopDrawingUPP(depth, deviceFlags, targetDevice, userData, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppDeviceLoopDrawingProcInfo, (depth), (deviceFlags), (targetDevice), (userData))
endif
/* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
define NewQDPrinterStatusProc(userRoutine) NewQDPrinterStatusUPP(userRoutine)
define NewDeviceLoopDrawingProc(userRoutine) NewDeviceLoopDrawingUPP(userRoutine)
define CallQDPrinterStatusProc(userRoutine, opcode, currentPort, printerStatus) InvokeQDPrinterStatusUPP(opcode, currentPort, printerStatus, userRoutine)
define CallDeviceLoopDrawingProc(userRoutine, depth, deviceFlags, targetDevice, userData) InvokeDeviceLoopDrawingUPP(depth, deviceFlags, targetDevice, userData, userRoutine)
if !OPAQUE_TOOLBOX_STRUCTS
/* In Carbon, use the QDGlobals accessors such as GetQDGlobalsThePort() */
struct QDGlobals {
char privates[76];
long randSeed;
BitMap screenBits;
Cursor arrow;
Pattern dkGray;
Pattern ltGray;
Pattern gray;
Pattern black;
Pattern white;
GrafPtr thePort;
};
typedef struct QDGlobals QDGlobals;
typedef QDGlobals * QDGlobalsPtr;
typedef QDGlobalsPtr * QDGlobalsHdl;
extern QDGlobals qd;
endif /* !OPAQUE_TOOLBOX_STRUCTS */
if CALL_NOT_IN_CARBON
EXTERN_API( void )
InitGraf (void * globalPtr) ONEWORDINLINE(0xA86E);
EXTERN_API( void )
OpenPort (GrafPtr port) ONEWORDINLINE(0xA86F);
EXTERN_API( void )
InitPort (GrafPtr port) ONEWORDINLINE(0xA86D);
EXTERN_API( void )
ClosePort (GrafPtr port) ONEWORDINLINE(0xA87D);
/*
These are Carbon only routines. They do nothing at all on
Mac OS 8, but work flawlessly on Mac OS X.
*/
endif /* CALL_NOT_IN_CARBON */
EXTERN_API( OSErr )
LockPortBits (GrafPtr port);
EXTERN_API( OSErr )
UnlockPortBits (GrafPtr port);
/* Break a region up into rectangles.*/
enum {
kQDParseRegionFromTop = (1 << 0),
kQDParseRegionFromBottom = (1 << 1),
kQDParseRegionFromLeft = (1 << 2),
kQDParseRegionFromRight = (1 << 3),
kQDParseRegionFromTopLeft = kQDParseRegionFromTop | kQDParseRegionFromLeft,
kQDParseRegionFromBottomRight = kQDParseRegionFromBottom | kQDParseRegionFromRight
};
typedef SInt32 QDRegionParseDirection;
enum {
kQDRegionToRectsMsgInit = 1,
kQDRegionToRectsMsgParse = 2,
kQDRegionToRectsMsgTerminate = 3
};
typedef CALLBACK_API_C( OSStatus , RegionToRectsProcPtr )(UInt16 message, RgnHandle rgn, const Rect *rect, void *refCon);
typedef STACK_UPP_TYPE(RegionToRectsProcPtr) RegionToRectsUPP;
if OPAQUE_UPP_TYPES
EXTERN_API(RegionToRectsUPP)
NewRegionToRectsUPP (RegionToRectsProcPtr userRoutine);
EXTERN_API(void)
DisposeRegionToRectsUPP (RegionToRectsUPP userUPP);
EXTERN_API(OSStatus)
InvokeRegionToRectsUPP (UInt16 message,
RgnHandle rgn,
const Rect * rect,
void * refCon,
RegionToRectsUPP userUPP);
else
enum { uppRegionToRectsProcInfo = 0x00003FB1 }; /* 4_bytes Func(2_bytes, 4_bytes, 4_bytes, 4_bytes) */
#define NewRegionToRectsUPP(userRoutine) (RegionToRectsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppRegionToRectsProcInfo, GetCurrentArchitecture())
#define DisposeRegionToRectsUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#define InvokeRegionToRectsUPP(message, rgn, rect, refCon, userUPP) (OSStatus)CALL_FOUR_PARAMETER_UPP((userUPP), uppRegionToRectsProcInfo, (message), (rgn), (rect), (refCon))
endif
/* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
define NewRegionToRectsProc(userRoutine) NewRegionToRectsUPP(userRoutine)
define CallRegionToRectsProc(userRoutine, message, rgn, rect, refCon) InvokeRegionToRectsUPP(message, rgn, rect, refCon, userRoutine)
EXTERN_API_C( OSStatus )
QDRegionToRects (RgnHandle rgn,
QDRegionParseDirection dir,
RegionToRectsUPP proc,
void * userData);
if !TARGET_OS_MAC || TARGET_API_MAC_OSX
if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
UpdatePort (GrafPtr port);
EXTERN_API( void *)
GetPortNativeWindow (GrafPtr macPort);
EXTERN_API( GrafPtr )
GetNativeWindowPort (void * nativeWindow);
EXTERN_API( void *)
MacRegionToNativeRegion (RgnHandle macRegion);
EXTERN_API( RgnHandle )
NativeRegionToMacRegion (void * nativeRegion);
endif /* CALL_NOT_IN_CARBON */
endif /* !TARGET_OS_MAC || TARGET_API_MAC_OSX */
if TARGET_OS_WIN32
if CALL_NOT_IN_CARBON
EXTERN_API( void *)
GetPortHWND (GrafPtr port);
EXTERN_API( GrafPtr )
GetHWNDPort (void * theHWND);
define GetPortHWND(port) (HWND)GetPortNativeWindow(port)
define GetHWNDPort(theHWND) GetNativeWindowPort(theHWND)
EXTERN_API( void *)
GetPortHDC (GrafPtr port);
EXTERN_API( void *)
GetPortHBITMAP (GrafPtr port);
EXTERN_API( void *)
GetPortHPALETTE (GrafPtr port);
EXTERN_API( void *)
GetPortHFONT (GrafPtr port);
EXTERN_API( void *)
GetDIBFromPICT (PicHandle hPict);
EXTERN_API( PicHandle )
GetPICTFromDIB (void * h);
endif /* CALL_NOT_IN_CARBON */
endif /* TARGET_OS_WIN32 */
if TARGET_OS_MAC
#define MacSetPort SetPort
endif
EXTERN_API( void )
MacSetPort (GrafPtr port) ONEWORDINLINE(0xA873);
EXTERN_API( void )
GetPort (GrafPtr * port) ONEWORDINLINE(0xA874);
EXTERN_API( void )
GrafDevice (short device) ONEWORDINLINE(0xA872);
EXTERN_API( void )
SetPortBits (const BitMap * bm) ONEWORDINLINE(0xA875);
EXTERN_API( void )
PortSize (short width,
short height) ONEWORDINLINE(0xA876);
EXTERN_API( void )
MovePortTo (short leftGlobal,
short topGlobal) ONEWORDINLINE(0xA877);
EXTERN_API( void )
SetOrigin (short h,
short v) ONEWORDINLINE(0xA878);
EXTERN_API( void )
SetClip (RgnHandle rgn) ONEWORDINLINE(0xA879);
EXTERN_API( void )
GetClip (RgnHandle rgn) ONEWORDINLINE(0xA87A);
EXTERN_API( void )
ClipRect (const Rect * r) ONEWORDINLINE(0xA87B);
EXTERN_API( void )
BackPat (const Pattern * pat) ONEWORDINLINE(0xA87C);
EXTERN_API( void )
InitCursor (void) ONEWORDINLINE(0xA850);
if TARGET_OS_MAC
#define MacSetCursor SetCursor
endif
EXTERN_API( void )
MacSetCursor (const Cursor * crsr) ONEWORDINLINE(0xA851);
EXTERN_API( void )
HideCursor (void) ONEWORDINLINE(0xA852);
if TARGET_OS_MAC
#define MacShowCursor ShowCursor
endif
EXTERN_API( void )
MacShowCursor (void) ONEWORDINLINE(0xA853);
EXTERN_API( void )
ObscureCursor (void) ONEWORDINLINE(0xA856);
EXTERN_API( void )
HidePen (void) ONEWORDINLINE(0xA896);
EXTERN_API( void )
ShowPen (void) ONEWORDINLINE(0xA897);
EXTERN_API( void )
GetPen (Point * pt) ONEWORDINLINE(0xA89A);
EXTERN_API( void )
GetPenState (PenState * pnState) ONEWORDINLINE(0xA898);
EXTERN_API( void )
SetPenState (const PenState * pnState) ONEWORDINLINE(0xA899);
EXTERN_API( void )
PenSize (short width,
short height) ONEWORDINLINE(0xA89B);
EXTERN_API( void )
PenMode (short mode) ONEWORDINLINE(0xA89C);
EXTERN_API( void )
PenPat (const Pattern * pat) ONEWORDINLINE(0xA89D);
EXTERN_API( void )
PenNormal (void) ONEWORDINLINE(0xA89E);
EXTERN_API( void )
MoveTo (short h,
short v) ONEWORDINLINE(0xA893);
EXTERN_API( void )
Move (short dh,
short dv) ONEWORDINLINE(0xA894);
if TARGET_OS_MAC
#define MacLineTo LineTo
endif
EXTERN_API( void )
MacLineTo (short h,
short v) ONEWORDINLINE(0xA891);
EXTERN_API( void )
Line (short dh,
short dv) ONEWORDINLINE(0xA892);
EXTERN_API( void )
ForeColor (long color) ONEWORDINLINE(0xA862);
EXTERN_API( void )
BackColor (long color) ONEWORDINLINE(0xA863);
EXTERN_API( void )
ColorBit (short whichBit) ONEWORDINLINE(0xA864);
if TARGET_OS_MAC
#define MacSetRect SetRect
endif
EXTERN_API( void )
MacSetRect (Rect * r,
short left,
short top,
short right,
short bottom) ONEWORDINLINE(0xA8A7);
if TARGET_OS_MAC
#define MacOffsetRect OffsetRect
endif
EXTERN_API( void )
MacOffsetRect (Rect * r,
short dh,
short dv) ONEWORDINLINE(0xA8A8);
if TARGET_OS_MAC
#define MacInsetRect InsetRect
endif
EXTERN_API( void )
MacInsetRect (Rect * r,
short dh,
short dv) ONEWORDINLINE(0xA8A9);
EXTERN_API( Boolean )
SectRect (const Rect * src1,
const Rect * src2,
Rect * dstRect) ONEWORDINLINE(0xA8AA);
if TARGET_OS_MAC
#define MacUnionRect UnionRect
endif
EXTERN_API( void )
MacUnionRect (const Rect * src1,
const Rect * src2,
Rect * dstRect) ONEWORDINLINE(0xA8AB);
if TARGET_OS_MAC
#define MacEqualRect EqualRect
endif
EXTERN_API( Boolean )
MacEqualRect (const Rect * rect1,
const Rect * rect2) ONEWORDINLINE(0xA8A6);
EXTERN_API( Boolean )
EmptyRect (const Rect * r) ONEWORDINLINE(0xA8AE);
if TARGET_OS_MAC
#define MacFrameRect FrameRect
endif
EXTERN_API( void )
MacFrameRect (const Rect * r) ONEWORDINLINE(0xA8A1);
EXTERN_API( void )
PaintRect (const Rect * r) ONEWORDINLINE(0xA8A2);
EXTERN_API( void )
EraseRect (const Rect * r) ONEWORDINLINE(0xA8A3);
if TARGET_OS_MAC
#define MacInvertRect InvertRect
endif
EXTERN_API( void )
MacInvertRect (const Rect * r) ONEWORDINLINE(0xA8A4);
if TARGET_OS_MAC
#define MacFillRect FillRect
endif
EXTERN_API( void )
MacFillRect (const Rect * r,
const Pattern * pat) ONEWORDINLINE(0xA8A5);
EXTERN_API( void )
FrameOval (const Rect * r) ONEWORDINLINE(0xA8B7);
EXTERN_API( void )
PaintOval (const Rect * r) ONEWORDINLINE(0xA8B8);
EXTERN_API( void )
EraseOval (const Rect * r) ONEWORDINLINE(0xA8B9);
EXTERN_API( void )
InvertOval (const Rect * r) ONEWORDINLINE(0xA8BA);
EXTERN_API( void )
FillOval (const Rect * r,
const Pattern * pat) ONEWORDINLINE(0xA8BB);
EXTERN_API( void )
FrameRoundRect (const Rect * r,
short ovalWidth,
short ovalHeight) ONEWORDINLINE(0xA8B0);
EXTERN_API( void )
PaintRoundRect (const Rect * r,
short ovalWidth,
short ovalHeight) ONEWORDINLINE(0xA8B1);
EXTERN_API( void )
EraseRoundRect (const Rect * r,
short ovalWidth,
short ovalHeight) ONEWORDINLINE(0xA8B2);
EXTERN_API( void )
InvertRoundRect (const Rect * r,
short ovalWidth,
short ovalHeight) ONEWORDINLINE(0xA8B3);
EXTERN_API( void )
FillRoundRect (const Rect * r,
short ovalWidth,
short ovalHeight,
const Pattern * pat) ONEWORDINLINE(0xA8B4);
EXTERN_API( void )
FrameArc (const Rect * r,
short startAngle,
short arcAngle) ONEWORDINLINE(0xA8BE);
EXTERN_API( void )
PaintArc (const Rect * r,
short startAngle,
short arcAngle) ONEWORDINLINE(0xA8BF);
EXTERN_API( void )
EraseArc (const Rect * r,
short startAngle,
short arcAngle) ONEWORDINLINE(0xA8C0);
EXTERN_API( void )
InvertArc (const Rect * r,
short startAngle,
short arcAngle) ONEWORDINLINE(0xA8C1);
EXTERN_API( void )
FillArc (const Rect * r,
short startAngle,
short arcAngle,
const Pattern * pat) ONEWORDINLINE(0xA8C2);
EXTERN_API( RgnHandle )
NewRgn (void) ONEWORDINLINE(0xA8D8);
EXTERN_API( void )
OpenRgn (void) ONEWORDINLINE(0xA8DA);
EXTERN_API( void )
CloseRgn (RgnHandle dstRgn) ONEWORDINLINE(0xA8DB);
EXTERN_API( OSErr )
BitMapToRegion (RgnHandle region,
const BitMap * bMap) ONEWORDINLINE(0xA8D7);
EXTERN_API( void )
DisposeRgn (RgnHandle rgn) ONEWORDINLINE(0xA8D9);
if TARGET_OS_MAC
#define MacCopyRgn CopyRgn
endif
EXTERN_API( void )
MacCopyRgn (RgnHandle srcRgn,
RgnHandle dstRgn) ONEWORDINLINE(0xA8DC);
EXTERN_API( void )
SetEmptyRgn (RgnHandle rgn) ONEWORDINLINE(0xA8DD);
if TARGET_OS_MAC
#define MacSetRectRgn SetRectRgn
endif
EXTERN_API( void )
MacSetRectRgn (RgnHandle rgn,
short left,
short top,
short right,
short bottom) ONEWORDINLINE(0xA8DE);
EXTERN_API( void )
RectRgn (RgnHandle rgn,
const Rect * r) ONEWORDINLINE(0xA8DF);
if TARGET_OS_MAC
#define MacOffsetRgn OffsetRgn
endif
EXTERN_API( void )
MacOffsetRgn (RgnHandle rgn,
short dh,
short dv) ONEWORDINLINE(0xA8E0);
EXTERN_API( void )
InsetRgn (RgnHandle rgn,
short dh,
short dv) ONEWORDINLINE(0xA8E1);
EXTERN_API( void )
SectRgn (RgnHandle srcRgnA,
RgnHandle srcRgnB,
RgnHandle dstRgn) ONEWORDINLINE(0xA8E4);
if TARGET_OS_MAC
#define MacUnionRgn UnionRgn
endif
EXTERN_API( void )
MacUnionRgn (RgnHandle srcRgnA,
RgnHandle srcRgnB,
RgnHandle dstRgn) ONEWORDINLINE(0xA8E5);
EXTERN_API( void )
DiffRgn (RgnHandle srcRgnA,
RgnHandle srcRgnB,
RgnHandle dstRgn) ONEWORDINLINE(0xA8E6);
if TARGET_OS_MAC
#define MacXorRgn XorRgn
endif
EXTERN_API( void )
MacXorRgn (RgnHandle srcRgnA,
RgnHandle srcRgnB,
RgnHandle dstRgn) ONEWORDINLINE(0xA8E7);
EXTERN_API( Boolean )
RectInRgn (const Rect * r,
RgnHandle rgn) ONEWORDINLINE(0xA8E9);
if TARGET_OS_MAC
#define MacEqualRgn EqualRgn
endif
EXTERN_API( Boolean )
MacEqualRgn (RgnHandle rgnA,
RgnHandle rgnB) ONEWORDINLINE(0xA8E3);
EXTERN_API( Boolean )
EmptyRgn (RgnHandle rgn) ONEWORDINLINE(0xA8E2);
if TARGET_OS_MAC
#define MacFrameRgn FrameRgn
endif
EXTERN_API( void )
MacFrameRgn (RgnHandle rgn) ONEWORDINLINE(0xA8D2);
if TARGET_OS_MAC
#define MacPaintRgn PaintRgn
endif
EXTERN_API( void )
MacPaintRgn (RgnHandle rgn) ONEWORDINLINE(0xA8D3);
EXTERN_API( void )
EraseRgn (RgnHandle rgn) ONEWORDINLINE(0xA8D4);
if TARGET_OS_MAC
#define MacInvertRgn InvertRgn
endif
EXTERN_API( void )
MacInvertRgn (RgnHandle rgn) ONEWORDINLINE(0xA8D5);
if TARGET_OS_MAC
#define MacFillRgn FillRgn
endif
EXTERN_API( void )
MacFillRgn (RgnHandle rgn,
const Pattern * pat) ONEWORDINLINE(0xA8D6);
EXTERN_API( void )
ScrollRect (const Rect * r,
short dh,
short dv,
RgnHandle updateRgn) ONEWORDINLINE(0xA8EF);
EXTERN_API( void )
CopyBits (const BitMap * srcBits,
const BitMap * dstBits,
const Rect * srcRect,
const Rect * dstRect,
short mode,
RgnHandle maskRgn) /* can be NULL */ ONEWORDINLINE(0xA8EC);
EXTERN_API( void )
SeedFill (const void * srcPtr,
void * dstPtr,
short srcRow,
short dstRow,
short height,
short words,
short seedH,
short seedV) ONEWORDINLINE(0xA839);
EXTERN_API( void )
CalcMask (const void * srcPtr,
void * dstPtr,
short srcRow,
short dstRow,
short height,
short words) ONEWORDINLINE(0xA838);
EXTERN_API( void )
CopyMask (const BitMap * srcBits,
const BitMap * maskBits,
const BitMap * dstBits,
const Rect * srcRect,
const Rect * maskRect,
const Rect * dstRect) ONEWORDINLINE(0xA817);
EXTERN_API( PicHandle )
OpenPicture (const Rect * picFrame) ONEWORDINLINE(0xA8F3);
EXTERN_API( void )
PicComment (short kind,
short dataSize,
Handle dataHandle) ONEWORDINLINE(0xA8F2);
EXTERN_API( void )
ClosePicture (void) ONEWORDINLINE(0xA8F4);
EXTERN_API( void )
DrawPicture (PicHandle myPicture,
const Rect * dstRect) ONEWORDINLINE(0xA8F6);
EXTERN_API( void )
KillPicture (PicHandle myPicture) ONEWORDINLINE(0xA8F5);
EXTERN_API( PolyHandle )
OpenPoly (void) ONEWORDINLINE(0xA8CB);
EXTERN_API( void )
ClosePoly (void) ONEWORDINLINE(0xA8CC);
EXTERN_API( void )
KillPoly (PolyHandle poly) ONEWORDINLINE(0xA8CD);
EXTERN_API( void )
OffsetPoly (PolyHandle poly,
short dh,
short dv) ONEWORDINLINE(0xA8CE);
EXTERN_API( void )
FramePoly (PolyHandle poly) ONEWORDINLINE(0xA8C6);
EXTERN_API( void )
PaintPoly (PolyHandle poly) ONEWORDINLINE(0xA8C7);
EXTERN_API( void )
ErasePoly (PolyHandle poly) ONEWORDINLINE(0xA8C8);
EXTERN_API( void )
InvertPoly (PolyHandle poly) ONEWORDINLINE(0xA8C9);
EXTERN_API( void )
FillPoly (PolyHandle poly,
const Pattern * pat) ONEWORDINLINE(0xA8CA);
EXTERN_API( void )
SetPt (Point * pt,
short h,
short v) ONEWORDINLINE(0xA880);
EXTERN_API( void )
LocalToGlobal (Point * pt) ONEWORDINLINE(0xA870);
EXTERN_API( void )
GlobalToLocal (Point * pt) ONEWORDINLINE(0xA871);
EXTERN_API( short )
Random (void) ONEWORDINLINE(0xA861);
EXTERN_API( void )
StuffHex (void * thingPtr,
ConstStr255Param s) ONEWORDINLINE(0xA866);
if TARGET_OS_MAC
#define MacGetPixel GetPixel
endif
EXTERN_API( Boolean )
MacGetPixel (short h,
short v) ONEWORDINLINE(0xA865);
EXTERN_API( void )
ScalePt (Point * pt,
const Rect * srcRect,
const Rect * dstRect) ONEWORDINLINE(0xA8F8);
EXTERN_API( void )
MapPt (Point * pt,
const Rect * srcRect,
const Rect * dstRect) ONEWORDINLINE(0xA8F9);
EXTERN_API( void )
MapRect (Rect * r,
const Rect * srcRect,
const Rect * dstRect) ONEWORDINLINE(0xA8FA);
EXTERN_API( void )
MapRgn (RgnHandle rgn,
const Rect * srcRect,
const Rect * dstRect) ONEWORDINLINE(0xA8FB);
EXTERN_API( void )
MapPoly (PolyHandle poly,
const Rect * srcRect,
const Rect * dstRect) ONEWORDINLINE(0xA8FC);
EXTERN_API( void )
SetStdProcs (QDProcs * procs) ONEWORDINLINE(0xA8EA);
EXTERN_API( void )
StdRect (GrafVerb verb,
const Rect * r) ONEWORDINLINE(0xA8A0);
EXTERN_API( void )
StdRRect (GrafVerb verb,
const Rect * r,
short ovalWidth,
short ovalHeight) ONEWORDINLINE(0xA8AF);
EXTERN_API( void )
StdOval (GrafVerb verb,
const Rect * r) ONEWORDINLINE(0xA8B6);
EXTERN_API( void )
StdArc (GrafVerb verb,
const Rect * r,
short startAngle,
short arcAngle) ONEWORDINLINE(0xA8BD);
EXTERN_API( void )
StdPoly (GrafVerb verb,
PolyHandle poly) ONEWORDINLINE(0xA8C5);
EXTERN_API( void )
StdRgn (GrafVerb verb,
RgnHandle rgn) ONEWORDINLINE(0xA8D1);
EXTERN_API( void )
StdBits (const BitMap * srcBits,
const Rect * srcRect,
const Rect * dstRect,
short mode,
RgnHandle maskRgn) ONEWORDINLINE(0xA8EB);
EXTERN_API( void )
StdComment (short kind,
short dataSize,
Handle dataHandle) ONEWORDINLINE(0xA8F1);
EXTERN_API( void )
StdGetPic (void * dataPtr,
short byteCount) ONEWORDINLINE(0xA8EE);
EXTERN_API( void )
StdPutPic (const void * dataPtr,
short byteCount) ONEWORDINLINE(0xA8F0);
EXTERN_API( void )
StdOpcode (const Rect * fromRect,
const Rect * toRect,
UInt16 opcode,
SInt16 version) ONEWORDINLINE(0xABF8);
EXTERN_API( void )
AddPt (Point src,
Point * dst) ONEWORDINLINE(0xA87E);
EXTERN_API( Boolean )
EqualPt (Point pt1,
Point pt2) ONEWORDINLINE(0xA881);
if TARGET_OS_MAC
#define MacPtInRect PtInRect
endif
EXTERN_API( Boolean )
MacPtInRect (Point pt,
const Rect * r) ONEWORDINLINE(0xA8AD);
EXTERN_API( void )
Pt2Rect (Point pt1,
Point pt2,
Rect * dstRect) ONEWORDINLINE(0xA8AC);
EXTERN_API( void )
PtToAngle (const Rect * r,
Point pt,
short * angle) ONEWORDINLINE(0xA8C3);
EXTERN_API( void )
SubPt (Point src,
Point * dst) ONEWORDINLINE(0xA87F);
EXTERN_API( Boolean )
PtInRgn (Point pt,
RgnHandle rgn) ONEWORDINLINE(0xA8E8);
EXTERN_API( void )
StdLine (Point newPt) ONEWORDINLINE(0xA890);
if CALL_NOT_IN_CARBON
EXTERN_API( void )
OpenCPort (CGrafPtr port) ONEWORDINLINE(0xAA00);
EXTERN_API( void )
InitCPort (CGrafPtr port) ONEWORDINLINE(0xAA01);
EXTERN_API( void )
CloseCPort (CGrafPtr port) ONEWORDINLINE(0xAA02);
endif /* CALL_NOT_IN_CARBON */
EXTERN_API( PixMapHandle )
NewPixMap (void) ONEWORDINLINE(0xAA03);
EXTERN_API( void )
DisposePixMap (PixMapHandle pm) ONEWORDINLINE(0xAA04);
EXTERN_API( void )
CopyPixMap (PixMapHandle srcPM,
PixMapHandle dstPM) ONEWORDINLINE(0xAA05);
EXTERN_API( PixPatHandle )
NewPixPat (void) ONEWORDINLINE(0xAA07);
EXTERN_API( void )
DisposePixPat (PixPatHandle pp) ONEWORDINLINE(0xAA08);
EXTERN_API( void )
CopyPixPat (PixPatHandle srcPP,
PixPatHandle dstPP) ONEWORDINLINE(0xAA09);
EXTERN_API( void )
PenPixPat (PixPatHandle pp) ONEWORDINLINE(0xAA0A);
EXTERN_API( void )
BackPixPat (PixPatHandle pp) ONEWORDINLINE(0xAA0B);
EXTERN_API( PixPatHandle )
GetPixPat (short patID) ONEWORDINLINE(0xAA0C);
EXTERN_API( void )
MakeRGBPat (PixPatHandle pp,
const RGBColor * myColor) ONEWORDINLINE(0xAA0D);
EXTERN_API( void )
FillCRect (const Rect * r,
PixPatHandle pp) ONEWORDINLINE(0xAA0E);
EXTERN_API( void )
FillCOval (const Rect * r,
PixPatHandle pp) ONEWORDINLINE(0xAA0F);
EXTERN_API( void )
FillCRoundRect (const Rect * r,
short ovalWidth,
short ovalHeight,
PixPatHandle pp) ONEWORDINLINE(0xAA10);
EXTERN_API( void )
FillCArc (const Rect * r,
short startAngle,
short arcAngle,
PixPatHandle pp) ONEWORDINLINE(0xAA11);
EXTERN_API( void )
FillCRgn (RgnHandle rgn,
PixPatHandle pp) ONEWORDINLINE(0xAA12);
EXTERN_API( void )
FillCPoly (PolyHandle poly,
PixPatHandle pp) ONEWORDINLINE(0xAA13);
EXTERN_API( void )
RGBForeColor (const RGBColor * color) ONEWORDINLINE(0xAA14);
EXTERN_API( void )
RGBBackColor (const RGBColor * color) ONEWORDINLINE(0xAA15);
EXTERN_API( void )
SetCPixel (short h,
short v,
const RGBColor * cPix) ONEWORDINLINE(0xAA16);
EXTERN_API( void )
SetPortPix (PixMapHandle pm) ONEWORDINLINE(0xAA06);
EXTERN_API( void )
GetCPixel (short h,
short v,
RGBColor * cPix) ONEWORDINLINE(0xAA17);
EXTERN_API( void )
GetForeColor (RGBColor * color) ONEWORDINLINE(0xAA19);
EXTERN_API( void )
GetBackColor (RGBColor * color) ONEWORDINLINE(0xAA1A);
EXTERN_API( void )
SeedCFill (const BitMap * srcBits,
const BitMap * dstBits,
const Rect * srcRect,
const Rect * dstRect,
short seedH,
short seedV,
ColorSearchUPP matchProc,
long matchData) ONEWORDINLINE(0xAA50);
EXTERN_API( void )
CalcCMask (const BitMap * srcBits,
const BitMap * dstBits,
const Rect * srcRect,
const Rect * dstRect,
const RGBColor * seedRGB,
ColorSearchUPP matchProc,
long matchData) ONEWORDINLINE(0xAA4F);
EXTERN_API( PicHandle )
OpenCPicture (const OpenCPicParams * newHeader) ONEWORDINLINE(0xAA20);
EXTERN_API( void )
OpColor (const RGBColor * color) ONEWORDINLINE(0xAA21);
EXTERN_API( void )
HiliteColor (const RGBColor * color) ONEWORDINLINE(0xAA22);
EXTERN_API( void )
DisposeCTable (CTabHandle cTable) ONEWORDINLINE(0xAA24);
EXTERN_API( CTabHandle )
GetCTable (short ctID) ONEWORDINLINE(0xAA18);
EXTERN_API( CCrsrHandle )
GetCCursor (short crsrID) ONEWORDINLINE(0xAA1B);
EXTERN_API( void )
SetCCursor (CCrsrHandle cCrsr) ONEWORDINLINE(0xAA1C);
EXTERN_API( void )
AllocCursor (void) ONEWORDINLINE(0xAA1D);
EXTERN_API( void )
DisposeCCursor (CCrsrHandle cCrsr) ONEWORDINLINE(0xAA26);
/* GetCIcon(), PlotCIcon(), and DisposeCIcon() moved to Icons.h*/
EXTERN_API( void )
SetStdCProcs (CQDProcs * procs) ONEWORDINLINE(0xAA4E);
EXTERN_API( GDHandle )
GetMaxDevice (const Rect * globalRect) ONEWORDINLINE(0xAA27);
EXTERN_API( long )
GetCTSeed (void) ONEWORDINLINE(0xAA28);
EXTERN_API( GDHandle )
GetDeviceList (void) ONEWORDINLINE(0xAA29);
EXTERN_API( GDHandle )
GetMainDevice (void) ONEWORDINLINE(0xAA2A);
EXTERN_API( GDHandle )
GetNextDevice (GDHandle curDevice) ONEWORDINLINE(0xAA2B);
EXTERN_API( Boolean )
TestDeviceAttribute (GDHandle gdh,
short attribute) ONEWORDINLINE(0xAA2C);
EXTERN_API( void )
SetDeviceAttribute (GDHandle gdh,
short attribute,
Boolean value) ONEWORDINLINE(0xAA2D);
EXTERN_API( void )
InitGDevice (short qdRefNum,
long mode,
GDHandle gdh) ONEWORDINLINE(0xAA2E);
EXTERN_API( GDHandle )
NewGDevice (short refNum,
long mode) ONEWORDINLINE(0xAA2F);
EXTERN_API( void )
DisposeGDevice (GDHandle gdh) ONEWORDINLINE(0xAA30);
EXTERN_API( void )
SetGDevice (GDHandle gd) ONEWORDINLINE(0xAA31);
EXTERN_API( GDHandle )
GetGDevice (void) ONEWORDINLINE(0xAA32);
EXTERN_API( long )
Color2Index (const RGBColor * myColor) ONEWORDINLINE(0xAA33);
EXTERN_API( void )
Index2Color (long index,
RGBColor * aColor) ONEWORDINLINE(0xAA34);
EXTERN_API( void )
InvertColor (RGBColor * myColor) ONEWORDINLINE(0xAA35);
EXTERN_API( Boolean )
RealColor (const RGBColor * color) ONEWORDINLINE(0xAA36);
EXTERN_API( void )
GetSubTable (CTabHandle myColors,
short iTabRes,
CTabHandle targetTbl) ONEWORDINLINE(0xAA37);
EXTERN_API( void )
MakeITable (CTabHandle cTabH,
ITabHandle iTabH,
short res) ONEWORDINLINE(0xAA39);
EXTERN_API( void )
AddSearch (ColorSearchUPP searchProc) ONEWORDINLINE(0xAA3A);
EXTERN_API( void )
AddComp (ColorComplementUPP compProc) ONEWORDINLINE(0xAA3B);
EXTERN_API( void )
DelSearch (ColorSearchUPP searchProc) ONEWORDINLINE(0xAA4C);
EXTERN_API( void )
DelComp (ColorComplementUPP compProc) ONEWORDINLINE(0xAA4D);
EXTERN_API( void )
SetClientID (short id) ONEWORDINLINE(0xAA3C);
EXTERN_API( void )
ProtectEntry (short index,
Boolean protect) ONEWORDINLINE(0xAA3D);
EXTERN_API( void )
ReserveEntry (short index,
Boolean reserve) ONEWORDINLINE(0xAA3E);
EXTERN_API( void )
SetEntries (short start,
short count,
CSpecArray aTable) ONEWORDINLINE(0xAA3F);
EXTERN_API( void )
SaveEntries (CTabHandle srcTable,
CTabHandle resultTable,
ReqListRec * selection) ONEWORDINLINE(0xAA49);
EXTERN_API( void )
RestoreEntries (CTabHandle srcTable,
CTabHandle dstTable,
ReqListRec * selection) ONEWORDINLINE(0xAA4A);
EXTERN_API( short )
QDError (void) ONEWORDINLINE(0xAA40);
EXTERN_API( void )
CopyDeepMask (const BitMap * srcBits,
const BitMap * maskBits,
const BitMap * dstBits,
const Rect * srcRect,
const Rect * maskRect,
const Rect * dstRect,
short mode,
RgnHandle maskRgn) /* can be NULL */ ONEWORDINLINE(0xAA51);
EXTERN_API( void )
DeviceLoop (RgnHandle drawingRgn,
DeviceLoopDrawingUPP drawingProc,
long userData,
DeviceLoopFlags flags) ONEWORDINLINE(0xABCA);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __A0 GetMaskTable
#endif
EXTERN_API( Ptr )
GetMaskTable (void) ONEWORDINLINE(0xA836);
EXTERN_API( PatHandle )
GetPattern (short patternID) ONEWORDINLINE(0xA9B8);
if TARGET_OS_MAC
#define MacGetCursor GetCursor
endif
EXTERN_API( CursHandle )
MacGetCursor (short cursorID) ONEWORDINLINE(0xA9B9);
EXTERN_API( PicHandle )
GetPicture (short pictureID) ONEWORDINLINE(0xA9BC);
EXTERN_API( long )
DeltaPoint (Point ptA,
Point ptB) ONEWORDINLINE(0xA94F);
EXTERN_API( void )
ShieldCursor (const Rect * shieldRect,
Point offsetPt) ONEWORDINLINE(0xA855);
EXTERN_API( void )
ScreenRes (short * scrnHRes,
short * scrnVRes) SIXWORDINLINE(0x225F, 0x32B8, 0x0102, 0x225F, 0x32B8, 0x0104);
EXTERN_API( void )
GetIndPattern (Pattern * thePat,
short patternListID,
short index);
if CALL_NOT_IN_CARBON
EXTERN_API_C( Boolean )
ptinrect (const Point * pt,
const Rect * r);
EXTERN_API_C( void )
pt2rect (const Point * pt1,
const Point * pt2,
Rect * destRect);
EXTERN_API_C( void )
pttoangle (const Rect * r,
const Point * pt,
short * angle);
EXTERN_API_C( Boolean )
ptinrgn (const Point * pt,
RgnHandle rgn);
EXTERN_API_C( void )
addpt (const Point * src,
Point * dst);
EXTERN_API_C( void )
subpt (const Point * src,
Point * dst);
EXTERN_API_C( Boolean )
equalpt (const Point * pt1,
const Point * pt2);
EXTERN_API_C( void )
stuffhex (void * thingPtr,
const char * s);
EXTERN_API_C( void )
stdline (const Point * newPt);
EXTERN_API_C( void )
shieldcursor (const Rect * shieldRect,
Point * offsetPt);
endif /* CALL_NOT_IN_CARBON */
EXTERN_API_C( long )
deltapoint (Point * ptA,
Point * ptB);
if OLDROUTINENAMES
define DisposPixMap(pm) DisposePixMap(pm)
define DisposPixPat(pp) DisposePixPat(pp)
define DisposCTable(cTable) DisposeCTable(cTable)
define DisposCCursor(cCrsr) DisposeCCursor(cCrsr)
define DisposGDevice(gdh) DisposeGDevice(gdh)
endif /* OLDROUTINENAMES */
/*
From ToolUtils.i
*/
EXTERN_API( void )
PackBits (Ptr * srcPtr,
Ptr * dstPtr,
short srcBytes) ONEWORDINLINE(0xA8CF);
EXTERN_API( void )
UnpackBits (Ptr * srcPtr,
Ptr * dstPtr,
short dstBytes) ONEWORDINLINE(0xA8D0);
EXTERN_API( Fixed )
SlopeFromAngle (short angle) ONEWORDINLINE(0xA8BC);
EXTERN_API( short )
AngleFromSlope (Fixed slope) ONEWORDINLINE(0xA8C4);
/* New transfer modes */
enum {
colorXorXFer = 52,
noiseXFer = 53,
customXFer = 54
};
/* Custom XFer flags */
enum {
kXFer1PixelAtATime = 0x00000001, /* 1 pixel passed to custom XFer proc*/
kXFerConvertPixelToRGB32 = 0x00000002 /* All color depths converted to 32 bit RGB*/
};
struct CustomXFerRec {
UInt32 version;
void * srcPixels;
void * destPixels;
void * resultPixels;
UInt32 refCon;
UInt32 pixelSize;
UInt32 pixelCount;
Point firstPixelHV;
Rect destBounds;
};
typedef struct CustomXFerRec CustomXFerRec;
typedef CustomXFerRec * CustomXFerRecPtr;
typedef CALLBACK_API( void , CustomXFerProcPtr )(CustomXFerRecPtr info);
EXTERN_API( OSErr )
GetPortCustomXFerProc (CGrafPtr port,
CustomXFerProcPtr * proc,
UInt32 * flags,
UInt32 * refCon) FOURWORDINLINE(0x203C, 0x0010, 0x0019, 0xAB1D);
EXTERN_API( OSErr )
SetPortCustomXFerProc (CGrafPtr port,
CustomXFerProcPtr proc,
UInt32 flags,
UInt32 refCon) FOURWORDINLINE(0x203C, 0x0010, 0x001A, 0xAB1D);
enum {
kCursorComponentsVersion = 0x00010001
};
enum {
kCursorComponentType = FOUR_CHAR_CODE('curs')
};
/* Cursor Component capabilities flags */
enum {
cursorDoesAnimate = 1L << 0,
cursorDoesHardware = 1L << 1,
cursorDoesUnreadableScreenBits = 1L << 2
};
/* Cursor Component output mode flags */
enum {
kRenderCursorInHardware = 1L << 0,
kRenderCursorInSoftware = 1L << 1
};
/* Cursor Component Info */
struct CursorInfo {
long version; /* use kCursorComponentsVersion */
long capabilities;
long animateDuration; /* approximate time between animate tickles */
Rect bounds;
Point hotspot;
long reserved; /* must set to zero */
};
typedef struct CursorInfo CursorInfo;
/* Cursor Component Selectors */
enum {
kCursorComponentInit = 0x0001,
kCursorComponentGetInfo = 0x0002,
kCursorComponentSetOutputMode = 0x0003,
kCursorComponentSetData = 0x0004,
kCursorComponentReconfigure = 0x0005,
kCursorComponentDraw = 0x0006,
kCursorComponentErase = 0x0007,
kCursorComponentMove = 0x0008,
kCursorComponentAnimate = 0x0009,
kCursorComponentLastReserved = 0x0050
};
EXTERN_API( OSErr )
OpenCursorComponent (Component c,
ComponentInstance * ci) FOURWORDINLINE(0x203C, 0x0008, 0x000B, 0xABE0);
EXTERN_API( OSErr )
CloseCursorComponent (ComponentInstance ci) FOURWORDINLINE(0x203C, 0x0004, 0x000C, 0xABE0);
EXTERN_API( OSErr )
SetCursorComponent (ComponentInstance ci) FOURWORDINLINE(0x203C, 0x0004, 0x000D, 0xABE0);
EXTERN_API( OSErr )
CursorComponentChanged (ComponentInstance ci) FOURWORDINLINE(0x203C, 0x0004, 0x000E, 0xABE0);
EXTERN_API( OSErr )
CursorComponentSetData (ComponentInstance ci,
long data) FOURWORDINLINE(0x203C, 0x0008, 0x000F, 0xABE0);
if ACCESSOR_CALLS_ARE_FUNCTIONS
/* GrafPort */
/* Getters */
EXTERN_API( PixMapHandle )
GetPortPixMap (CGrafPtr port);
EXTERN_API( Rect *)
GetPortBounds (CGrafPtr port,
Rect * rect);
EXTERN_API( RGBColor *)
GetPortForeColor (CGrafPtr port,
RGBColor * foreColor);
EXTERN_API( RGBColor *)
GetPortBackColor (CGrafPtr port,
RGBColor * backColor);
EXTERN_API( RGBColor *)
GetPortOpColor (CGrafPtr port,
RGBColor * opColor);
EXTERN_API( RGBColor *)
GetPortHiliteColor (CGrafPtr port,
RGBColor * hiliteColor);
EXTERN_API( CQDProcsPtr )
GetPortGrafProcs (CGrafPtr port);
EXTERN_API( short )
GetPortTextFont (CGrafPtr port);
EXTERN_API( Style )
GetPortTextFace (CGrafPtr port);
EXTERN_API( short )
GetPortTextMode (CGrafPtr port);
EXTERN_API( short )
GetPortTextSize (CGrafPtr port);
EXTERN_API( short )
GetPortChExtra (CGrafPtr port);
EXTERN_API( short )
GetPortFracHPenLocation (CGrafPtr port);
EXTERN_API( Fixed )
GetPortSpExtra (CGrafPtr port);
EXTERN_API( short )
GetPortPenVisibility (CGrafPtr port);
EXTERN_API( RgnHandle )
GetPortVisibleRegion (CGrafPtr port,
RgnHandle visRgn);
EXTERN_API( RgnHandle )
GetPortClipRegion (CGrafPtr port,
RgnHandle clipRgn);
EXTERN_API( PixPatHandle )
GetPortBackPixPat (CGrafPtr port,
PixPatHandle backPattern);
EXTERN_API( PixPatHandle )
GetPortPenPixPat (CGrafPtr port,
PixPatHandle penPattern);
EXTERN_API( PixPatHandle )
GetPortFillPixPat (CGrafPtr port,
PixPatHandle fillPattern);
EXTERN_API( Point *)
GetPortPenSize (CGrafPtr port,
Point * penSize);
EXTERN_API( SInt32 )
GetPortPenMode (CGrafPtr port);
EXTERN_API( Point *)
GetPortPenLocation (CGrafPtr port,
Point * penLocation);
EXTERN_API( Boolean )
IsPortRegionBeingDefined (CGrafPtr port);
EXTERN_API( Boolean )
IsPortPictureBeingDefined (CGrafPtr port);
EXTERN_API( Boolean )
IsPortOffscreen (CGrafPtr port);
/* Setters */
EXTERN_API( void )
SetPortBounds (CGrafPtr port,
const Rect * rect);
EXTERN_API( void )
SetPortOpColor (CGrafPtr port,
const RGBColor * opColor);
EXTERN_API( void )
SetPortGrafProcs (CGrafPtr port,
CQDProcs * procs);
EXTERN_API( void )
SetPortVisibleRegion (CGrafPtr port,
RgnHandle visRgn);
EXTERN_API( void )
SetPortClipRegion (CGrafPtr port,
RgnHandle clipRgn);
EXTERN_API( void )
SetPortPenPixPat (CGrafPtr port,
PixPatHandle penPattern);
EXTERN_API( void )
SetPortBackPixPat (CGrafPtr port,
PixPatHandle backPattern);
EXTERN_API( void )
SetPortPenSize (CGrafPtr port,
Point penSize);
EXTERN_API( void )
SetPortPenMode (CGrafPtr port,
SInt32 penMode);
EXTERN_API( void )
SetPortFracHPenLocation (CGrafPtr port,
short pnLocHFrac);
/* PixMap */
EXTERN_API( Rect *)
GetPixBounds (PixMapHandle pixMap,
Rect * bounds);
EXTERN_API( short )
GetPixDepth (PixMapHandle pixMap);
/* QDGlobals */
/* Getters */
EXTERN_API( long )
GetQDGlobalsRandomSeed (void);
EXTERN_API( BitMap *)
GetQDGlobalsScreenBits (BitMap * screenBits);
EXTERN_API( Cursor *)
GetQDGlobalsArrow (Cursor * arrow);
EXTERN_API( Pattern *)
GetQDGlobalsDarkGray (Pattern * dkGray);
EXTERN_API( Pattern *)
GetQDGlobalsLightGray (Pattern * ltGray);
EXTERN_API( Pattern *)
GetQDGlobalsGray (Pattern * gray);
EXTERN_API( Pattern *)
GetQDGlobalsBlack (Pattern * black);
EXTERN_API( Pattern *)
GetQDGlobalsWhite (Pattern * white);
EXTERN_API( CGrafPtr )
GetQDGlobalsThePort (void);
/* Setters */
EXTERN_API( void )
SetQDGlobalsRandomSeed (long randomSeed);
EXTERN_API( void )
SetQDGlobalsArrow (const Cursor * arrow);
/* Regions */
EXTERN_API( Rect *)
GetRegionBounds (RgnHandle region,
Rect * bounds);
EXTERN_API( Boolean )
IsRegionRectangular (RgnHandle region);
/* Utilities */
/* To prevent upward dependencies, GetPortWindow is defined in Window Manager interface: */
/* pascal WindowPtr GetPortWindow(CGrafPtr port); */
/* NewPtr/OpenCPort doesn't work with opaque structures */
EXTERN_API( CGrafPtr )
CreateNewPort (void);
EXTERN_API( void )
DisposePort (CGrafPtr port);
endif /* ACCESSOR_CALLS_ARE_FUNCTIONS */
/*
Routines available on Mac OS X to flush buffered window ports...
These calls do nothing on Mac OS 8/9. QDIsPortBuffered will always return false there.
*/
EXTERN_API( Boolean )
QDIsPortBuffered (CGrafPtr port);
EXTERN_API( Boolean )
QDIsPortBufferDirty (CGrafPtr port);
EXTERN_API( void )
QDFlushPortBuffer (CGrafPtr port,
RgnHandle region);
if PRAGMA_STRUCT_ALIGN
#pragma options align=reset
#elif PRAGMA_STRUCT_PACKPUSH
#pragma pack(pop)
#elif PRAGMA_STRUCT_PACK
#pragma pack()
endif
ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
endif
ifdef __cplusplus
}
endif
endif /* __QUICKDRAW__ */
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.