/* File: Palettes.h Contains: Palette Manager Interfaces. Version: Technology: Mac OS 8 Release: QuickTime 6.0.2 Copyright: (c) 1987-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 __PALETTES__ #define __PALETTES__ #ifndef __QUICKDRAW__ #include #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 { pmCourteous = 0, /*Record use of color on each device touched.*/ pmDithered = 0x0001, pmTolerant = 0x0002, /*render ciRGB if ciTolerance is exceeded by best match.*/ pmAnimated = 0x0004, /*reserve an index on each device touched and render ciRGB.*/ pmExplicit = 0x0008, /*no reserve, no render, no record; stuff index into port.*/ pmWhite = 0x0010, pmBlack = 0x0020, pmInhibitG2 = 0x0100, pmInhibitC2 = 0x0200, pmInhibitG4 = 0x0400, pmInhibitC4 = 0x0800, pmInhibitG8 = 0x1000, pmInhibitC8 = 0x2000, /* NSetPalette Update Constants */ pmNoUpdates = 0x8000, /*no updates*/ pmBkUpdates = 0xA000, /*background updates only*/ pmFgUpdates = 0xC000, /*foreground updates only*/ pmAllUpdates = 0xE000 /*all updates*/ }; struct ColorInfo { RGBColor ciRGB; /*true RGB values*/ short ciUsage; /*color usage*/ short ciTolerance; /*tolerance value*/ short ciDataFields[3]; /*private fields*/ }; typedef struct ColorInfo ColorInfo; typedef ColorInfo * ColorInfoPtr; typedef ColorInfoPtr * ColorInfoHandle; struct Palette { short pmEntries; /*entries in pmTable*/ short pmDataFields[7]; /*private fields*/ ColorInfo pmInfo[1]; }; typedef struct Palette Palette; typedef Palette * PalettePtr; typedef PalettePtr * PaletteHandle; EXTERN_API( void ) InitPalettes (void) ONEWORDINLINE(0xAA90); EXTERN_API( PaletteHandle ) NewPalette (short entries, CTabHandle srcColors, short srcUsage, short srcTolerance) ONEWORDINLINE(0xAA91); EXTERN_API( PaletteHandle ) GetNewPalette (short PaletteID) ONEWORDINLINE(0xAA92); EXTERN_API( void ) DisposePalette (PaletteHandle srcPalette) ONEWORDINLINE(0xAA93); EXTERN_API( void ) ActivatePalette (WindowPtr srcWindow) ONEWORDINLINE(0xAA94); EXTERN_API( void ) SetPalette (WindowPtr dstWindow, PaletteHandle srcPalette, Boolean cUpdates) ONEWORDINLINE(0xAA95); EXTERN_API( void ) NSetPalette (WindowPtr dstWindow, PaletteHandle srcPalette, short nCUpdates) ONEWORDINLINE(0xAA95); EXTERN_API( PaletteHandle ) GetPalette (WindowPtr srcWindow) ONEWORDINLINE(0xAA96); EXTERN_API( void ) CopyPalette (PaletteHandle srcPalette, PaletteHandle dstPalette, short srcEntry, short dstEntry, short dstLength) ONEWORDINLINE(0xAAA1); EXTERN_API( void ) PmForeColor (short dstEntry) ONEWORDINLINE(0xAA97); EXTERN_API( void ) PmBackColor (short dstEntry) ONEWORDINLINE(0xAA98); EXTERN_API( void ) AnimateEntry (WindowPtr dstWindow, short dstEntry, const RGBColor * srcRGB) ONEWORDINLINE(0xAA99); #if TARGET_OS_MAC #define MacAnimatePalette AnimatePalette #endif EXTERN_API( void ) MacAnimatePalette (WindowPtr dstWindow, CTabHandle srcCTab, short srcIndex, short dstEntry, short dstLength) ONEWORDINLINE(0xAA9A); EXTERN_API( void ) GetEntryColor (PaletteHandle srcPalette, short srcEntry, RGBColor * dstRGB) ONEWORDINLINE(0xAA9B); EXTERN_API( void ) SetEntryColor (PaletteHandle dstPalette, short dstEntry, const RGBColor * srcRGB) ONEWORDINLINE(0xAA9C); EXTERN_API( void ) GetEntryUsage (PaletteHandle srcPalette, short srcEntry, short * dstUsage, short * dstTolerance) ONEWORDINLINE(0xAA9D); EXTERN_API( void ) SetEntryUsage (PaletteHandle dstPalette, short dstEntry, short srcUsage, short srcTolerance) ONEWORDINLINE(0xAA9E); EXTERN_API( void ) CTab2Palette (CTabHandle srcCTab, PaletteHandle dstPalette, short srcUsage, short srcTolerance) ONEWORDINLINE(0xAA9F); EXTERN_API( void ) Palette2CTab (PaletteHandle srcPalette, CTabHandle dstCTab) ONEWORDINLINE(0xAAA0); EXTERN_API( long ) Entry2Index (short entry) TWOWORDINLINE(0x7000, 0xAAA2); EXTERN_API( void ) RestoreDeviceClut (GDHandle gd) TWOWORDINLINE(0x7002, 0xAAA2); #if TARGET_OS_MAC #define MacResizePalette ResizePalette #endif EXTERN_API( void ) MacResizePalette (PaletteHandle p, short size) TWOWORDINLINE(0x7003, 0xAAA2); EXTERN_API( void ) SaveFore (ColorSpec * c) THREEWORDINLINE(0x303C, 0x040D, 0xAAA2); EXTERN_API( void ) SaveBack (ColorSpec * c) THREEWORDINLINE(0x303C, 0x040E, 0xAAA2); EXTERN_API( void ) RestoreFore (const ColorSpec * c) THREEWORDINLINE(0x303C, 0x040F, 0xAAA2); EXTERN_API( void ) RestoreBack (const ColorSpec * c) THREEWORDINLINE(0x303C, 0x0410, 0xAAA2); EXTERN_API( OSErr ) SetDepth (GDHandle gd, short depth, short whichFlags, short flags) THREEWORDINLINE(0x303C, 0x0A13, 0xAAA2); EXTERN_API( short ) HasDepth (GDHandle gd, short depth, short whichFlags, short flags) THREEWORDINLINE(0x303C, 0x0A14, 0xAAA2); EXTERN_API( short ) PMgrVersion (void) TWOWORDINLINE(0x7015, 0xAAA2); EXTERN_API( void ) SetPaletteUpdates (PaletteHandle p, short updates) THREEWORDINLINE(0x303C, 0x0616, 0xAAA2); EXTERN_API( short ) GetPaletteUpdates (PaletteHandle p) THREEWORDINLINE(0x303C, 0x0417, 0xAAA2); EXTERN_API( Boolean ) GetGray (GDHandle device, const RGBColor * backGround, RGBColor * foreGround) THREEWORDINLINE(0x303C, 0x0C19, 0xAAA2); #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 /* __PALETTES__ */