/************************************************************ Created: Wednesday, October 21, 1992 at 2:54 PM ImageCompression.h C Interface to the Macintosh Libraries Copyright Apple Computer, Inc. 1991, 1992 All rights reserved ************************************************************/ #ifndef __IMAGECOMPRESSION__ #define __IMAGECOMPRESSION__ #ifndef __QUICKDRAW__ #include #endif #ifndef __QDOFFSCREEN__ #include #endif #ifndef __TYPES__ #include #endif #ifndef __COMPONENTS__ #include #endif #ifndef __STANDARDFILE__ #include #endif #define gestaltCompressionMgr 'icmp' struct MatrixRecord { Fixed matrix[3][3]; }; typedef struct MatrixRecord MatrixRecord; typedef MatrixRecord *MatrixRecordPtr; typedef struct FixedPoint { Fixed x; Fixed y; } FixedPoint; typedef struct FixedRect { Fixed left; Fixed top; Fixed right; Fixed bottom; } FixedRect; #define codecInfoDoes1 (1L<<0) #define codecInfoDoes2 (1L<<1) #define codecInfoDoes4 (1L<<2) #define codecInfoDoes8 (1L<<3) #define codecInfoDoes16 (1L<<4) #define codecInfoDoes32 (1L<<5) #define codecInfoDoesDither (1L<<6) #define codecInfoDoesStretch (1L<<7) #define codecInfoDoesShrink (1L<<8) #define codecInfoDoesMask (1L<<9) #define codecInfoDoesTemporal (1L<<10) #define codecInfoDoesDouble (1L<<11) #define codecInfoDoesQuad (1L<<12) #define codecInfoDoesHalf (1L<<13) #define codecInfoDoesQuarter (1L<<14) #define codecInfoDoesRotate (1L<<15) #define codecInfoDoesHorizFlip (1L<<16) #define codecInfoDoesVertFlip (1L<<17) #define codecInfoDoesSkew (1L<<18) #define codecInfoDoesBlend (1L<<19) #define codecInfoDoesWarp (1L<<20) #define codecInfoDoesRecompress (1L<<21) #define codecInfoDoesSpool (1L<<22) #define codecInfoDoesRateConstrain (1L<<23) #define codecInfoDepth1 (1L<<0) #define codecInfoDepth2 (1L<<1) #define codecInfoDepth4 (1L<<2) #define codecInfoDepth8 (1L<<3) #define codecInfoDepth16 (1L<<4) #define codecInfoDepth32 (1L<<5) #define codecInfoDepth24 (1L<<6) #define codecInfoDepth33 (1L<<7) #define codecInfoDepth34 (1L<<8) #define codecInfoDepth36 (1L<<9) #define codecInfoDepth40 (1L<<10) #define codecInfoStoresClut (1L<<11) #define codecInfoDoesLossless (1L<<12) #define codecInfoSequenceSensitive (1L<<13) #define codecFlagUseImageBuffer (1L<<0) #define codecFlagUseScreenBuffer (1L<<1) #define codecFlagUpdatePrevious (1L<<2) #define codecFlagNoScreenUpdate (1L<<3) #define codecFlagWasCompressed (1L<<4) #define codecFlagDontOffscreen (1L<<5) #define codecFlagUpdatePreviousComp (1L<<6) #define codecFlagForceKeyFrame (1L<<7) #define codecFlagOnlyScreenUpdate (1L<<8) #define codecFlagLiveGrab (1L<<9) #define codecFlagDontUseNewImageBuffer (1L<<10) #define codecFlagInterlaceUpdate (1L<<11) #define codecFlagUsedNewImageBuffer (1L<<14) #define codecFlagUsedImageBuffer (1L<<15) #define codecErr -8960 #define noCodecErr -8961 #define codecUnimpErr -8962 #define codecSizeErr -8963 #define codecScreenBufErr -8964 #define codecImageBufErr -8965 #define codecSpoolErr -8966 #define codecAbortErr -8967 #define codecWouldOffscreenErr -8968 #define codecBadDataErr -8969 #define codecDataVersErr -8970 #define codecExtensionNotFoundErr -8971 #define codecConditionErr -8972 #define codecOpenErr -8973 #define codecMinimumDataSize 32768 #define compressorComponentType 'imco' #define decompressorComponentType 'imdc' typedef Component CompressorComponent; typedef Component DecompressorComponent; typedef Component CodecComponent; #define anyCodec ((CodecComponent)0) #define bestSpeedCodec ((CodecComponent)-1) #define bestFidelityCodec ((CodecComponent)-2) #define bestCompressionCodec ((CodecComponent)-3) typedef long CodecType; typedef unsigned short CodecFlags; typedef unsigned long CodecQ; #define codecLosslessQuality 0x400L #define codecMaxQuality 0x3ffL #define codecMinQuality 0x000L #define codecLowQuality 0x100L #define codecNormalQuality 0x200L #define codecHighQuality 0x300L typedef pascal OSErr (*DataProcPtr)(Ptr *dataP,long bytesNeeded,long refcon); typedef pascal OSErr (*FlushProcPtr)(Ptr data,long bytesAdded,long refcon); typedef pascal void (*CompletionProcPtr)(OSErr result,short flags,long refcon); #define codecCompletionSource (1<<0) #define codecCompletionDest (1<<1) typedef pascal OSErr (*ProgressProcPtr)(short message,Fixed completeness,long refcon); #define codecProgressOpen 0 #define codecProgressUpdatePercent 1 #define codecProgressClose 2 typedef pascal void (*StdPixProcPtr)(PixMap *src,Rect *srcRect,MatrixRecord *matrix,short mode, RgnHandle mask,PixMap *matte,Rect *matteRect,short flags); typedef long ImageSequence; typedef struct { ProgressProcPtr progressProc; long progressRefCon; } ProgressProcRecord; typedef ProgressProcRecord *ProgressProcRecordPtr; typedef struct { CompletionProcPtr completionProc; long completionRefCon; } CompletionProcRecord; typedef CompletionProcRecord *CompletionProcRecordPtr; typedef struct { DataProcPtr dataProc; long dataRefCon; } DataProcRecord; typedef DataProcRecord *DataProcRecordPtr; typedef struct { FlushProcPtr flushProc; long flushRefCon; } FlushProcRecord; typedef FlushProcRecord *FlushProcRecordPtr; typedef pascal void (*AlignmentProcPtr)(Rect *rp, long refcon); typedef struct { AlignmentProcPtr alignmentProc; long alignmentRefCon; } AlignmentProcRecord; typedef AlignmentProcRecord *AlignmentProcRecordPtr; typedef struct { long dataRate; long dataOverrun; long frameDuration; long keyFrameRate; CodecQ minSpatialQuality; CodecQ minTemporalQuality; } DataRateParams; typedef DataRateParams *DataRateParamsPtr; typedef struct ImageDescription { long idSize; CodecType cType; long resvd1; short resvd2; short dataRefIndex; short version; short revisionLevel; long vendor; CodecQ temporalQuality; CodecQ spatialQuality; short width; short height; Fixed hRes; Fixed vRes; long dataSize; short frameCount; Str31 name; short depth; short clutID; } ImageDescription; typedef ImageDescription *ImageDescriptionPtr; typedef ImageDescription **ImageDescriptionHandle; typedef struct CodecInfo { Str31 typeName; short version; short revisionLevel; long vendor; long decompressFlags; long compressFlags; long formatFlags; unsigned char compressionAccuracy; unsigned char decompressionAccuracy; unsigned short compressionSpeed; unsigned short decompressionSpeed; unsigned char compressionLevel; char resvd; short minimumHeight; short minimumWidth; short decompressPipelineLatency; short compressPipelineLatency; long privateData; } CodecInfo; typedef struct { CodecComponent codec; CodecType cType; Str31 typeName; Handle name; } CodecNameSpec; typedef struct { short count; CodecNameSpec list[1]; }CodecNameSpecList; typedef CodecNameSpecList *CodecNameSpecListPtr; #define defaultDither 0 #define forceDither 1 #define suppressDither 2 #ifdef __cplusplus extern "C" { #endif __cplusplus pascal OSErr CodecManagerVersion(long *version) = {0x7000,0xAAA3}; pascal OSErr GetCodecNameList(CodecNameSpecListPtr *list,short showAll) = {0x7001,0xAAA3}; pascal OSErr DisposeCodecNameList(CodecNameSpecListPtr list) = {0x700F,0xAAA3}; pascal OSErr GetCodecInfo(CodecInfo *info,CodecType cType,CodecComponent codec) = {0x7003,0xAAA3}; pascal OSErr GetMaxCompressionSize(PixMapHandle src,const Rect *srcRect, short colorDepth,CodecQ quality, CodecType cType,CompressorComponent codec,long *size) = {0x7004,0xAAA3}; pascal OSErr GetCompressionTime(PixMapHandle src,const Rect *srcRect, short colorDepth, CodecType cType,CompressorComponent codec, CodecQ *spatialQuality,CodecQ *temporalQuality,unsigned long *compressTime) = {0x7005,0xAAA3}; pascal OSErr CompressImage(PixMapHandle src,const Rect *srcRect,CodecQ quality,CodecType cType, ImageDescriptionHandle desc,Ptr data) = {0x7006,0xAAA3}; pascal OSErr FCompressImage(PixMapHandle src,const Rect *srcRect, short colorDepth, CodecQ quality,CodecType cType,CompressorComponent codec,CTabHandle clut, CodecFlags flags,long bufferSize, FlushProcRecordPtr flushProc,ProgressProcRecordPtr progressProc, ImageDescriptionHandle desc,Ptr data) = {0x7007,0xAAA3}; pascal OSErr DecompressImage(Ptr data,ImageDescriptionHandle desc,PixMapHandle dst, const Rect *srcRect,const Rect *dstRect,short mode,RgnHandle mask) = {0x7008,0xAAA3}; pascal OSErr FDecompressImage(Ptr data,ImageDescriptionHandle desc,PixMapHandle dst,const Rect *srcRect, MatrixRecordPtr matrix,short mode,RgnHandle mask, PixMapHandle matte,const Rect *matteRect, CodecQ accuracy,DecompressorComponent codec, long bufferSize,DataProcRecordPtr dataProc,ProgressProcRecordPtr progressProc) = {0x7009,0xAAA3}; pascal OSErr CompressSequenceBegin(ImageSequence *seqID,PixMapHandle src,PixMapHandle prev, const Rect *srcRect,const Rect *prevRect,short colorDepth,CodecType cType,CompressorComponent codec, CodecQ spatialQuality,CodecQ temporalQuality,long keyFrameRate, CTabHandle clut,CodecFlags flags,ImageDescriptionHandle desc) = {0x700A,0xAAA3}; pascal OSErr CompressSequenceFrame(ImageSequence seqID,PixMapHandle src,const Rect *srcRect, CodecFlags flags,Ptr data,long *dataSize, unsigned char *similarity,CompletionProcRecordPtr asyncCompletionProc) = {0x700B,0xAAA3}; pascal OSErr DecompressSequenceBegin(ImageSequence *seqID,ImageDescriptionHandle desc, CGrafPtr port,GDHandle gdh,const Rect *srcRect,MatrixRecordPtr matrix, short mode,RgnHandle mask,CodecFlags flags,CodecQ accuracy,DecompressorComponent codec) = {0x700D,0xAAA3}; pascal OSErr DecompressSequenceFrame(ImageSequence seqID,Ptr data, CodecFlags inFlags,CodecFlags *outFlags,CompletionProcRecordPtr asyncCompletionProc) = {0x700E,0xAAA3}; pascal OSErr DecompressSequenceFrameS(ImageSequence seqID,Ptr data,long dataSize, CodecFlags inFlags,CodecFlags *outFlags,CompletionProcRecordPtr asyncCompletionProc) = {0x203C,0x16,0x47,0xAAA3}; pascal OSErr SetDSequenceMatrix(ImageSequence seqID,MatrixRecordPtr matrix) = {0x7010,0xAAA3}; pascal OSErr SetDSequenceMatte(ImageSequence seqID,PixMapHandle matte,const Rect *matteRect) = {0x7011,0xAAA3}; pascal OSErr SetDSequenceMask(ImageSequence seqID,RgnHandle mask) = {0x7012,0xAAA3}; pascal OSErr SetDSequenceTransferMode(ImageSequence seqID,short mode,const RGBColor *opColor) = {0x7013,0xAAA3}; pascal OSErr SetDSequenceDataProc(ImageSequence seqID,DataProcRecordPtr dataProc,long bufferSize) = {0x7014,0xAAA3}; pascal OSErr SetDSequenceAccuracy(ImageSequence seqID,CodecQ accuracy) = {0x7034,0xAAA3}; pascal OSErr SetDSequenceSrcRect(ImageSequence seqID,const Rect *srcRect) = {0x7035,0xAAA3}; pascal OSErr GetDSequenceImageBuffer(ImageSequence seqID,GWorldPtr *gworld) = {0x7015,0xAAA3}; pascal OSErr GetDSequenceScreenBuffer(ImageSequence seqID,GWorldPtr *gworld) = {0x7016,0xAAA3}; pascal OSErr SetCSequenceQuality(ImageSequence seqID,CodecQ spatialQuality,CodecQ temporalQuality) = {0x7017,0xAAA3}; pascal OSErr SetCSequencePrev(ImageSequence seqID,PixMapHandle prev,const Rect *prevRect) = {0x7018,0xAAA3}; pascal OSErr SetCSequenceFlushProc(ImageSequence seqID,FlushProcRecordPtr flushProc,long bufferSize) = {0x7033,0xAAA3}; pascal OSErr SetCSequenceKeyFrameRate(ImageSequence seqID,long keyframerate) = {0x7036,0xAAA3}; pascal OSErr GetCSequenceKeyFrameRate(ImageSequence seqID,long *keyframerate) = {0x203C,0x8,0x4B,0xAAA3}; pascal OSErr GetCSequencePrevBuffer(ImageSequence seqID,GWorldPtr *gworld) = {0x7019,0xAAA3}; pascal OSErr CDSequenceBusy(ImageSequence seqID) = {0x701A,0xAAA3}; pascal OSErr CDSequenceEnd(ImageSequence seqID) = {0x701B,0xAAA3}; pascal OSErr GetCompressedImageSize(ImageDescriptionHandle desc,Ptr data,long bufferSize, DataProcRecordPtr dataProc,long *dataSize) = {0x701C,0xAAA3}; pascal OSErr GetSimilarity(PixMapHandle src,const Rect *srcRect,ImageDescriptionHandle desc,Ptr data,Fixed *similarity) = {0x701D,0xAAA3}; pascal OSErr GetImageDescriptionCTable(ImageDescriptionHandle desc,CTabHandle *ctable) = {0x701E,0xAAA3}; pascal OSErr SetImageDescriptionCTable(ImageDescriptionHandle desc,CTabHandle ctable) = {0x701F,0xAAA3}; pascal OSErr GetImageDescriptionExtension(ImageDescriptionHandle desc,Handle *extension,long type,long index) = {0x7020,0xAAA3}; pascal OSErr SetImageDescriptionExtension(ImageDescriptionHandle desc,Handle extension, long type) = {0x7021,0xAAA3}; pascal OSErr RemoveImageDescriptionExtension(ImageDescription **desc, long type, long index) = {0x203C,0xC,0x3A,0xAAA3}; pascal OSErr CountImageDescriptionExtensionType(ImageDescription **desc, long type, long *count) = {0x203C,0xC,0x3B,0xAAA3}; pascal OSErr GetNextImageDescriptionExtensionType(ImageDescription **desc, long *type) = {0x203C,0x8,0x3C,0xAAA3}; pascal OSErr FindCodec(CodecType cType,CodecComponent specCodec, CompressorComponent *compressor,DecompressorComponent *decompressor) = {0x7023,0xAAA3}; pascal OSErr CompressPicture(PicHandle srcPicture, PicHandle dstPicture,CodecQ quality,CodecType cType) = {0x7024,0xAAA3}; pascal OSErr FCompressPicture(PicHandle srcPicture, PicHandle dstPicture, short colorDepth, CTabHandle clut,CodecQ quality, short doDither,short compressAgain,ProgressProcRecordPtr progressProc, CodecType cType,CompressorComponent codec) = {0x7025,0xAAA3}; pascal OSErr CompressPictureFile(short srcRefNum, short dstRefNum,CodecQ quality,CodecType cType) = {0x7026,0xAAA3}; pascal OSErr FCompressPictureFile(short srcRefNum, short dstRefNum,short colorDepth, CTabHandle clut, CodecQ quality, short doDither,short compressAgain,ProgressProcRecordPtr progressProc, CodecType cType,CompressorComponent codec) = {0x7027,0xAAA3}; pascal OSErr GetPictureFileHeader(short refNum,Rect *frame,OpenCPicParams *header) = {0x7028,0xAAA3}; pascal OSErr DrawPictureFile(short refNum,const Rect *frame,ProgressProcRecordPtr progressProc) = {0x7029,0xAAA3}; pascal OSErr DrawTrimmedPicture(PicHandle srcPicture,const Rect *frame,RgnHandle trimMask,short doDither, ProgressProcRecordPtr progressProc) = {0x702E,0xAAA3}; pascal OSErr DrawTrimmedPictureFile(short srcRefnum,const Rect *frame,RgnHandle trimMask,short doDither, ProgressProcRecordPtr progressProc) = {0x702F,0xAAA3}; pascal OSErr MakeThumbnailFromPicture(PicHandle picture,short colorDepth,PicHandle thumbnail, ProgressProcRecordPtr progressProc) = {0x702A,0xAAA3}; pascal OSErr MakeThumbnailFromPictureFile(short refNum,short colorDepth,PicHandle thumbnail, ProgressProcRecordPtr progressProc) = {0x702B,0xAAA3}; pascal OSErr MakeThumbnailFromPixMap(PixMapHandle src,const Rect *srcRect,short colorDepth,PicHandle thumbnail, ProgressProcRecordPtr progressProc) = {0x702C,0xAAA3}; pascal OSErr TrimImage(ImageDescriptionHandle desc,Ptr inData,long inBufferSize,DataProcRecordPtr dataProc, Ptr outData,long outBufferSize,FlushProcRecordPtr flushProc,Rect *trimRect, ProgressProcRecordPtr progressProc) = {0x702D,0xAAA3}; pascal OSErr ConvertImage(ImageDescriptionHandle srcDD,Ptr srcData,short colorDepth,CTabHandle clut, CodecQ accuracy,CodecQ quality,CodecType cType,CodecComponent codec, ImageDescriptionHandle dstDD,Ptr dstData) = {0x7030,0xAAA3}; pascal OSErr GetCompressedPixMapInfo(PixMapPtr pix,ImageDescriptionHandle *desc,Ptr *data,long *bufferSize, DataProcRecord *dataProc,ProgressProcRecord *progressProc) = {0x7037,0xAAA3}; pascal OSErr SetCompressedPixMapInfo(PixMapPtr pix,ImageDescriptionHandle desc,Ptr data,long bufferSize, DataProcRecordPtr dataProc,ProgressProcRecordPtr progressProc) = {0x7038,0xAAA3}; pascal void StdPix(PixMapPtr src,const Rect *srcRect,MatrixRecordPtr matrix,short mode, RgnHandle mask,PixMapPtr matte,const Rect *matteRect,short flags) = {0x700C,0xAAA3}; pascal OSErr TransformRgn(MatrixRecordPtr matrix, RgnHandle rgn) = {0x7039,0xAAA3}; /*********** preview stuff ***********/ pascal void SFGetFilePreview(Point where, ConstStr255Param prompt, FileFilterProcPtr fileFilter, short numTypes, SFTypeList typeList, DlgHookProcPtr dlgHook, SFReply *reply) = {0x303C,0x41,0xAAA3}; pascal void SFPGetFilePreview(Point where, ConstStr255Param prompt, FileFilterProcPtr fileFilter, short numTypes, SFTypeList typeList, DlgHookProcPtr dlgHook, SFReply *reply, short dlgID, ModalFilterProcPtr filterProc) = {0x303C,0x42,0xAAA3}; pascal void StandardGetFilePreview(FileFilterProcPtr fileFilter, short numTypes, SFTypeList typeList, StandardFileReply *reply) = {0x303C,0x43,0xAAA3}; pascal void CustomGetFilePreview(FileFilterYDProcPtr fileFilter, short numTypes, SFTypeList typeList, StandardFileReply *reply, short dlgID, Point where, DlgHookYDProcPtr dlgHook, ModalFilterYDProcPtr filterProc, short *activeList, ActivateYDProcPtr activateProc, void *yourDataPtr) = {0x303C,0x44,0xAAA3}; pascal OSErr MakeFilePreview(short resRefNum, ProgressProcRecordPtr progress) = {0x303C,0x45,0xAAA3}; pascal OSErr AddFilePreview(short resRefNum, OSType previewType, Handle previewData) = {0x303C,0x46,0xAAA3}; #ifdef __cplusplus } #endif __cplusplus enum { sfpItemPreviewAreaUser = 11, sfpItemPreviewStaticText = 12, sfpItemPreviewDividerUser = 13, sfpItemCreatePreviewButton = 14, sfpItemShowPreviewButton = 15 }; typedef struct { unsigned long modDate; short version; OSType resType; short resID; } PreviewResourceRecord; typedef PreviewResourceRecord *PreviewResourcePtr, **PreviewResource; #ifdef __cplusplus extern "C" { #endif __cplusplus pascal void AlignScreenRect(Rect *rp, AlignmentProcRecordPtr alignmentProc) = {0x203C,0x8,0x4C,0xAAA3}; pascal void AlignWindow(WindowPtr wp, Boolean front, const Rect *alignmentRect, AlignmentProcRecordPtr alignmentProc) = {0x203C,0xE,0x4D,0xAAA3}; pascal void DragAlignedWindow(WindowPtr wp, Point startPt, Rect *boundsRect, Rect *alignmentRect, AlignmentProcRecordPtr alignmentProc) = {0x203C,0x14,0x4E,0xAAA3}; pascal long DragAlignedGrayRgn(RgnHandle theRgn, Point startPt, Rect *boundsRect, Rect *slopRect, short axis, ProcPtr actionProc, Rect *alignmentRect, AlignmentProcRecordPtr alignmentProc) = {0x203C,0x1E,0x4F,0xAAA3}; pascal OSErr SetCSequenceDataRateParams(ImageSequence seqID,DataRateParamsPtr params) = {0x203C,0x8,0x50,0xAAA3}; pascal OSErr SetCSequenceFrameNumber(ImageSequence seqID, long frameNumber) = {0x203C,0x8,0x51,0xAAA3}; pascal QDErr NewImageGWorld(GWorldPtr *gworld,ImageDescription **idh,GWorldFlags flags) = {0x203C,0xC,0x52,0xAAA3}; pascal OSErr GetCSequenceDataRateParams(ImageSequence seqID,DataRateParamsPtr params) = {0x203C,0x8,0x53,0xAAA3}; pascal OSErr GetCSequenceFrameNumber(ImageSequence seqID,long *frameNumber) = {0x203C,0x8,0x54,0xAAA3}; pascal OSErr GetBestDeviceRect(GDHandle *gdh, Rect *rp) = {0x203C,0x8,0x55,0xAAA3}; #ifdef __cplusplus } #endif __cplusplus enum { identityMatrixType = 0x00, /* result if matrix is identity */ translateMatrixType = 0x01, /* result if matrix translates */ scaleMatrixType = 0x02, /* result if matrix scales */ scaleTranslateMatrixType = 0x03, /* result if matrix scales and translates */ linearMatrixType = 0x04, /* result if matrix is general 2 x 2 */ linearTranslateMatrixType = 0x05, /* result if matrix is general 2 x 2 and translates */ perspectiveMatrixType = 0x06 /* result if matrix is general 3 x 3 */ }; typedef unsigned short MatrixFlags; #ifdef __cplusplus extern "C" { #endif __cplusplus pascal short GetMatrixType(MatrixRecord *m) = {0x7014,0xABC2}; pascal void CopyMatrix(MatrixRecord *m1, MatrixRecord *m2) = {0x7020,0xABC2}; pascal Boolean EqualMatrix(const MatrixRecord *m1, const MatrixRecord *m2) = {0x7021,0xABC2}; pascal void SetIdentityMatrix( MatrixRecord *matrix ) = {0x7015,0xABC2}; pascal void TranslateMatrix( MatrixRecord *m, Fixed deltaH, Fixed deltaV ) = {0x7019,0xABC2}; pascal void RotateMatrix( MatrixRecord *m, Fixed degrees, Fixed aboutX, Fixed aboutY ) = {0x7016,0xABC2}; pascal void ScaleMatrix( MatrixRecord *m, Fixed scaleX, Fixed scaleY, Fixed aboutX, Fixed aboutY ) = {0x7017,0xABC2}; pascal void SkewMatrix(MatrixRecord *m, Fixed skewX, Fixed skewY, Fixed aboutX, Fixed aboutY) = {0x7018,0xABC2}; pascal OSErr TransformFixedPoints(MatrixRecord *m, FixedPoint *fpt, long count) = {0x7022,0xABC2}; pascal OSErr TransformPoints( MatrixRecord *mp, Point *pt1, long count ) = {0x7023,0xABC2}; pascal Boolean TransformFixedRect(MatrixRecord *m, FixedRect *fr, FixedPoint *fpp) = {0x7024,0xABC2}; pascal Boolean TransformRect(MatrixRecord *m, Rect *r, FixedPoint *fpp) = {0x7025,0xABC2}; pascal Boolean InverseMatrix(MatrixRecord *m, MatrixRecord *im) = {0x701C,0xABC2}; pascal void ConcatMatrix(MatrixRecord *a, MatrixRecord *b) = {0x701B,0xABC2}; pascal void RectMatrix(MatrixRecord *matrix,Rect *srcRect,Rect *dstRect) = {0x701E,0xABC2}; pascal void MapMatrix(MatrixRecord *matrix,Rect *fromRect,Rect *toRect) = {0x701D,0xABC2}; #ifdef __cplusplus } #endif __cplusplus #endif __IMAGECOMPRESSION__