PictUtils.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:15k
- /*
- File: PictUtils.h
-
- Contains: Picture Utilities Interfaces.
-
- Version: Technology: Mac OS 8.5
- Release: QuickTime 6.0.2
-
- Copyright: (c) 1990-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 __PICTUTILS__
- #define __PICTUTILS__
- #ifndef __MACTYPES__
- #include "MacTypes.h"
- #endif
- #ifndef __PALETTES__
- #include "Palettes.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
- /* verbs for the GetPictInfo, GetPixMapInfo, and NewPictInfo calls */
- enum {
- returnColorTable = 0x0001,
- returnPalette = 0x0002,
- recordComments = 0x0004,
- recordFontInfo = 0x0008,
- suppressBlackAndWhite = 0x0010
- };
- enum {
- /* color pick methods */
- systemMethod = 0, /* system color pick method */
- popularMethod = 1, /* method that chooses the most popular set of colors */
- medianMethod = 2 /* method that chooses a good average mix of colors */
- };
- enum {
- /* color bank types */
- ColorBankIsCustom = -1,
- ColorBankIsExactAnd555 = 0,
- ColorBankIs555 = 1
- };
- typedef long PictInfoID;
- struct CommentSpec {
- short count; /* number of occurrances of this comment ID */
- short ID; /* ID for the comment in the picture */
- };
- typedef struct CommentSpec CommentSpec;
- typedef CommentSpec * CommentSpecPtr;
- typedef CommentSpecPtr * CommentSpecHandle;
- struct FontSpec {
- short pictFontID; /* ID of the font in the picture */
- short sysFontID; /* ID of the same font in the current system file */
- long size[4]; /* bit array of all the sizes found (1..127) (bit 0 means > 127) */
- short style; /* combined style of all occurrances of the font */
- long nameOffset; /* offset into the fontNamesHdl handle for the font's name */
- };
- typedef struct FontSpec FontSpec;
- typedef FontSpec * FontSpecPtr;
- typedef FontSpecPtr * FontSpecHandle;
- struct PictInfo {
- short version; /* this is always zero, for now */
- long uniqueColors; /* the number of actual colors in the picture(s)/pixmap(s) */
- PaletteHandle thePalette; /* handle to the palette information */
- CTabHandle theColorTable; /* handle to the color table */
- Fixed hRes; /* maximum horizontal resolution for all the pixmaps */
- Fixed vRes; /* maximum vertical resolution for all the pixmaps */
- short depth; /* maximum depth for all the pixmaps (in the picture) */
- Rect sourceRect; /* the picture frame rectangle (this contains the entire picture) */
- long textCount; /* total number of text strings in the picture */
- long lineCount; /* total number of lines in the picture */
- long rectCount; /* total number of rectangles in the picture */
- long rRectCount; /* total number of round rectangles in the picture */
- long ovalCount; /* total number of ovals in the picture */
- long arcCount; /* total number of arcs in the picture */
- long polyCount; /* total number of polygons in the picture */
- long regionCount; /* total number of regions in the picture */
- long bitMapCount; /* total number of bitmaps in the picture */
- long pixMapCount; /* total number of pixmaps in the picture */
- long commentCount; /* total number of comments in the picture */
- long uniqueComments; /* the number of unique comments in the picture */
- CommentSpecHandle commentHandle; /* handle to all the comment information */
- long uniqueFonts; /* the number of unique fonts in the picture */
- FontSpecHandle fontHandle; /* handle to the FontSpec information */
- Handle fontNamesHandle; /* handle to the font names */
- long reserved1;
- long reserved2;
- };
- typedef struct PictInfo PictInfo;
- typedef PictInfo * PictInfoPtr;
- typedef PictInfoPtr * PictInfoHandle;
- typedef CALLBACK_API( OSErr , InitPickMethodProcPtr )(SInt16 colorsRequested, UInt32 *dataRef, SInt16 *colorBankType);
- typedef CALLBACK_API( OSErr , RecordColorsProcPtr )(UInt32 dataRef, RGBColor *colorsArray, SInt32 colorCount, SInt32 *uniqueColors);
- typedef CALLBACK_API( OSErr , CalcColorTableProcPtr )(UInt32 dataRef, SInt16 colorsRequested, void *colorBankPtr, CSpecArray resultPtr);
- typedef CALLBACK_API( OSErr , DisposeColorPickMethodProcPtr )(UInt32 dataRef);
- typedef STACK_UPP_TYPE(InitPickMethodProcPtr) InitPickMethodUPP;
- typedef STACK_UPP_TYPE(RecordColorsProcPtr) RecordColorsUPP;
- typedef STACK_UPP_TYPE(CalcColorTableProcPtr) CalcColorTableUPP;
- typedef STACK_UPP_TYPE(DisposeColorPickMethodProcPtr) DisposeColorPickMethodUPP;
- #if OPAQUE_UPP_TYPES
- EXTERN_API(InitPickMethodUPP)
- NewInitPickMethodUPP (InitPickMethodProcPtr userRoutine);
- EXTERN_API(RecordColorsUPP)
- NewRecordColorsUPP (RecordColorsProcPtr userRoutine);
- EXTERN_API(CalcColorTableUPP)
- NewCalcColorTableUPP (CalcColorTableProcPtr userRoutine);
- EXTERN_API(DisposeColorPickMethodUPP)
- NewDisposeColorPickMethodUPP (DisposeColorPickMethodProcPtr userRoutine);
- EXTERN_API(void)
- DisposeInitPickMethodUPP (InitPickMethodUPP userUPP);
- EXTERN_API(void)
- DisposeRecordColorsUPP (RecordColorsUPP userUPP);
- EXTERN_API(void)
- DisposeCalcColorTableUPP (CalcColorTableUPP userUPP);
- EXTERN_API(void)
- DisposeDisposeColorPickMethodUPP (DisposeColorPickMethodUPP userUPP);
- EXTERN_API(OSErr)
- InvokeInitPickMethodUPP (SInt16 colorsRequested,
- UInt32 * dataRef,
- SInt16 * colorBankType,
- InitPickMethodUPP userUPP);
- EXTERN_API(OSErr)
- InvokeRecordColorsUPP (UInt32 dataRef,
- RGBColor * colorsArray,
- SInt32 colorCount,
- SInt32 * uniqueColors,
- RecordColorsUPP userUPP);
- EXTERN_API(OSErr)
- InvokeCalcColorTableUPP (UInt32 dataRef,
- SInt16 colorsRequested,
- void * colorBankPtr,
- CSpecArray resultPtr,
- CalcColorTableUPP userUPP);
- EXTERN_API(OSErr)
- InvokeDisposeColorPickMethodUPP (UInt32 dataRef,
- DisposeColorPickMethodUPP userUPP);
- #else
- enum { uppInitPickMethodProcInfo = 0x00000FA0 }; /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes) */
- enum { uppRecordColorsProcInfo = 0x00003FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
- enum { uppCalcColorTableProcInfo = 0x00003EE0 }; /* pascal 2_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
- enum { uppDisposeColorPickMethodProcInfo = 0x000000E0 }; /* pascal 2_bytes Func(4_bytes) */
- #define NewInitPickMethodUPP(userRoutine) (InitPickMethodUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppInitPickMethodProcInfo, GetCurrentArchitecture())
- #define NewRecordColorsUPP(userRoutine) (RecordColorsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppRecordColorsProcInfo, GetCurrentArchitecture())
- #define NewCalcColorTableUPP(userRoutine) (CalcColorTableUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppCalcColorTableProcInfo, GetCurrentArchitecture())
- #define NewDisposeColorPickMethodUPP(userRoutine) (DisposeColorPickMethodUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDisposeColorPickMethodProcInfo, GetCurrentArchitecture())
- #define DisposeInitPickMethodUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeRecordColorsUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeCalcColorTableUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define DisposeDisposeColorPickMethodUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define InvokeInitPickMethodUPP(colorsRequested, dataRef, colorBankType, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppInitPickMethodProcInfo, (colorsRequested), (dataRef), (colorBankType))
- #define InvokeRecordColorsUPP(dataRef, colorsArray, colorCount, uniqueColors, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppRecordColorsProcInfo, (dataRef), (colorsArray), (colorCount), (uniqueColors))
- #define InvokeCalcColorTableUPP(dataRef, colorsRequested, colorBankPtr, resultPtr, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppCalcColorTableProcInfo, (dataRef), (colorsRequested), (colorBankPtr), (resultPtr))
- #define InvokeDisposeColorPickMethodUPP(dataRef, userUPP) (OSErr)CALL_ONE_PARAMETER_UPP((userUPP), uppDisposeColorPickMethodProcInfo, (dataRef))
- #endif
- /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
- #define NewInitPickMethodProc(userRoutine) NewInitPickMethodUPP(userRoutine)
- #define NewRecordColorsProc(userRoutine) NewRecordColorsUPP(userRoutine)
- #define NewCalcColorTableProc(userRoutine) NewCalcColorTableUPP(userRoutine)
- #define NewDisposeColorPickMethodProc(userRoutine) NewDisposeColorPickMethodUPP(userRoutine)
- #define CallInitPickMethodProc(userRoutine, colorsRequested, dataRef, colorBankType) InvokeInitPickMethodUPP(colorsRequested, dataRef, colorBankType, userRoutine)
- #define CallRecordColorsProc(userRoutine, dataRef, colorsArray, colorCount, uniqueColors) InvokeRecordColorsUPP(dataRef, colorsArray, colorCount, uniqueColors, userRoutine)
- #define CallCalcColorTableProc(userRoutine, dataRef, colorsRequested, colorBankPtr, resultPtr) InvokeCalcColorTableUPP(dataRef, colorsRequested, colorBankPtr, resultPtr, userRoutine)
- #define CallDisposeColorPickMethodProc(userRoutine, dataRef) InvokeDisposeColorPickMethodUPP(dataRef, userRoutine)
- EXTERN_API( OSErr )
- GetPictInfo (PicHandle thePictHandle,
- PictInfo * thePictInfo,
- short verb,
- short colorsRequested,
- short colorPickMethod,
- short version) THREEWORDINLINE(0x303C, 0x0800, 0xA831);
- EXTERN_API( OSErr )
- GetPixMapInfo (PixMapHandle thePixMapHandle,
- PictInfo * thePictInfo,
- short verb,
- short colorsRequested,
- short colorPickMethod,
- short version) THREEWORDINLINE(0x303C, 0x0801, 0xA831);
- EXTERN_API( OSErr )
- NewPictInfo (PictInfoID * thePictInfoID,
- short verb,
- short colorsRequested,
- short colorPickMethod,
- short version) THREEWORDINLINE(0x303C, 0x0602, 0xA831);
- EXTERN_API( OSErr )
- RecordPictInfo (PictInfoID thePictInfoID,
- PicHandle thePictHandle) THREEWORDINLINE(0x303C, 0x0403, 0xA831);
- EXTERN_API( OSErr )
- RecordPixMapInfo (PictInfoID thePictInfoID,
- PixMapHandle thePixMapHandle) THREEWORDINLINE(0x303C, 0x0404, 0xA831);
- EXTERN_API( OSErr )
- RetrievePictInfo (PictInfoID thePictInfoID,
- PictInfo * thePictInfo,
- short colorsRequested) THREEWORDINLINE(0x303C, 0x0505, 0xA831);
- EXTERN_API( OSErr )
- DisposePictInfo (PictInfoID thePictInfoID) THREEWORDINLINE(0x303C, 0x0206, 0xA831);
- #if OLDROUTINENAMES
- #define DisposPictInfo(thePictInfoID) DisposePictInfo(thePictInfoID)
- #endif /* OLDROUTINENAMES */
- #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 /* __PICTUTILS__ */